javascript - 表單提交的時候密碼驗(yàn)證的問題?
問題描述
對表單這一塊不太熟,有以下幾個疑惑?
1.諸如在登錄驗(yàn)證用戶名和密碼的時候,二者都是同樣的方式提交到post到服務(wù)器嗎?2.get方式會把參數(shù)暴露到鏈接尾部(實(shí)際上會通過把key鍵值加密然后后端再解密校驗(yàn))?3.現(xiàn)在的表單常規(guī)處理方式是什么樣的?4.密碼校驗(yàn)的時候,諸如在比對密碼要求密碼中不能是3位同樣的連續(xù)數(shù)字?這個密碼會存在本地?還是服務(wù)器端來校驗(yàn)
問題解答
回答1:登錄用戶名驗(yàn)證不是一般都一起post到服務(wù)器么。
get 方法是會把參數(shù)暴露在鏈接尾部,但是瀏覽器本身并沒有任何加密,如果加密需要自己整。
對于一些表單值,是否有效以及非空等,就要在提交前有提示,提升用戶體驗(yàn)。
都要搞,前端是為了用戶體驗(yàn)(發(fā)起請求前就得知問題),后端是為了安全。
企業(yè)級服務(wù)的話上https,不要用明文。
回答2:假設(shè)用戶名必須在3位以上;密碼再6~32位;驗(yàn)證碼4位;1.點(diǎn)擊登陸的時候,檢測用戶名長度大于3,密碼長度6~32,驗(yàn)證碼長度4;通過往下走,不通過alert;2.組織參數(shù);post到服務(wù)器,name pwd code3,服務(wù)器接收參數(shù)4.驗(yàn)證嗎長度是否等于4,不等于4,return 驗(yàn)證碼長度異常5.從session中拿code,和參數(shù)code是否一致,不一致return 錯誤6.檢測用戶名長度,密碼長度,不對return 錯誤7.如果需要對pwd做加密8.從數(shù)據(jù)庫中select name=name,pwd=pwd,有則返回user,沒有返回0
回答3:GET 是直接把數(shù)據(jù)在URL里顯示;POST 是“掩耳盜鈴”,URL看不到,但是用瀏覽器開發(fā)者工具是能看到的;不管以上哪種,“黑客”通過抓包,也是可以在數(shù)據(jù)傳輸途中拿到明文的數(shù)據(jù);甚至可以對內(nèi)容進(jìn)行篡改/劫持,然后再傳給服務(wù)器,或者直接偽裝成服務(wù)器返回給你假的信息。如果使用HTTPS,那么數(shù)據(jù)傳輸?shù)臅r候 會先加密,相對安全。至于參數(shù)校驗(yàn),肯定是前后端都需要做的,因?yàn)榍岸说腏S校驗(yàn)很容易被繞過的。
回答4:get會暴露,post不會。安全點(diǎn)
相關(guān)文章:
1. angular.js - angularjs的自定義過濾器如何給文字加顏色?2. javascript - 如何讓移動端網(wǎng)頁的輸入框固定在底部?3. angular.js - angular內(nèi)容過長展開收起效果4. MySQL中無法修改字段名的疑問5. javascript - 微信小程序封裝定位問題(封裝異步并可能多次請求)6. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?7. 網(wǎng)頁爬蟲 - 用Python3的requests庫模擬登陸B(tài)ilibili總是提示驗(yàn)證碼錯誤怎么辦?8. android - QQ物聯(lián),視頻通話9. javascript - Web微信聊天輸入框解決方案10. 請教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒有反應(yīng)
