javascript - 表單提交的時(shí)候密碼驗(yàn)證的問題?
問題描述
對(duì)表單這一塊不太熟,有以下幾個(gè)疑惑?
1.諸如在登錄驗(yàn)證用戶名和密碼的時(shí)候,二者都是同樣的方式提交到post到服務(wù)器嗎?2.get方式會(huì)把參數(shù)暴露到鏈接尾部(實(shí)際上會(huì)通過把key鍵值加密然后后端再解密校驗(yàn))?3.現(xiàn)在的表單常規(guī)處理方式是什么樣的?4.密碼校驗(yàn)的時(shí)候,諸如在比對(duì)密碼要求密碼中不能是3位同樣的連續(xù)數(shù)字?這個(gè)密碼會(huì)存在本地?還是服務(wù)器端來校驗(yàn)
問題解答
回答1:登錄用戶名驗(yàn)證不是一般都一起post到服務(wù)器么。
get 方法是會(huì)把參數(shù)暴露在鏈接尾部,但是瀏覽器本身并沒有任何加密,如果加密需要自己整。
對(duì)于一些表單值,是否有效以及非空等,就要在提交前有提示,提升用戶體驗(yàn)。
都要搞,前端是為了用戶體驗(yàn)(發(fā)起請(qǐng)求前就得知問題),后端是為了安全。
企業(yè)級(jí)服務(wù)的話上https,不要用明文。
回答2:假設(shè)用戶名必須在3位以上;密碼再6~32位;驗(yàn)證碼4位;1.點(diǎn)擊登陸的時(shí)候,檢測用戶名長度大于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 錯(cuò)誤6.檢測用戶名長度,密碼長度,不對(duì)return 錯(cuò)誤7.如果需要對(duì)pwd做加密8.從數(shù)據(jù)庫中select name=name,pwd=pwd,有則返回user,沒有返回0
回答3:GET 是直接把數(shù)據(jù)在URL里顯示;POST 是“掩耳盜鈴”,URL看不到,但是用瀏覽器開發(fā)者工具是能看到的;不管以上哪種,“黑客”通過抓包,也是可以在數(shù)據(jù)傳輸途中拿到明文的數(shù)據(jù);甚至可以對(duì)內(nèi)容進(jìn)行篡改/劫持,然后再傳給服務(wù)器,或者直接偽裝成服務(wù)器返回給你假的信息。如果使用HTTPS,那么數(shù)據(jù)傳輸?shù)臅r(shí)候 會(huì)先加密,相對(duì)安全。至于參數(shù)校驗(yàn),肯定是前后端都需要做的,因?yàn)榍岸说腏S校驗(yàn)很容易被繞過的。
回答4:get會(huì)暴露,post不會(huì)。安全點(diǎn)
相關(guān)文章:
1. javascript - 獲取標(biāo)簽中的字符串2. javascript - 為什么我的vue里的router-link不起作用3. javascript - js 寫一個(gè)正則 提取文本中的數(shù)據(jù)4. javascript - vue子路由匹配渲染到頂級(jí)視圖層問題5. 算法 - python 給定一個(gè)正整數(shù)a和一個(gè)包含任意個(gè)正整數(shù)的 列表 b,求所有<=a 的加法組合6. javascript - 發(fā)現(xiàn)個(gè)奇怪的問題,寫的css動(dòng)畫當(dāng)我把標(biāo)簽頁收起時(shí)動(dòng)畫自動(dòng)暫停了7. javascript - js一個(gè)小的算法問題,找個(gè)好一點(diǎn)的答案。8. javascript - 新組成的數(shù)組打印出來出現(xiàn)問題,里面有對(duì)象,但長度為空9. javascript - 關(guān)于Lazyload遇到的問題10. javascript - 如果根據(jù)參數(shù)給table中的tr綁定不同事件
