对表单这一块不太熟,有以下几个疑惑?
1.诸如在登录验证用户名和密码的时候,二者都是同样的方式提交到post到服务器吗?2.get方式会把参数暴露到链接尾部(实际上会通过把key键值加密然后后端再解密校验)?3.现在的表单常规处理方式是什么样的?4.密码校验的时候,诸如在比对密码要求密码中不能是3位同样的连续数字?这个密码会存在本地?还是服务器端来校验
走同样的路,发现不同的人生
登入使用者名稱驗證不是一般都一起post到伺服器麼。
get 方法是會把參數暴露在連結尾部,但是瀏覽器本身並沒有任何加密,如果加密需要自己整。
對於某些表單值,是否有效以及非空等,就要在提交前有提示,提升用戶體驗。
都要搞,前端是為了使用者體驗(發起請求前就得知問題),後端是為了安全。
企業級服務的話上https,不要用明文。
假設使用者名稱必須在3位以上;密碼再6~32位;驗證碼4位;1.點擊登陸的時候,偵測使用者名稱長度大於3,密碼長度6~32,驗證碼長度4;經由往下走,不通過alert;2.組織參數;post到伺服器,name pwd code3,伺服器接收參數4.驗證嗎長度是否等於4,不等於4,return 驗證碼長度異常5.從session中拿code,和參數code是否一致,不一致return 錯誤6.偵測使用者名稱長度,密碼長度,不對return 錯誤7.如果需要對pwd做加密8.從資料庫中select name=name,pwd=pwd ,有則回傳user,沒有回傳0
GET 是直接把資料在URL裡顯示;POST 是“掩耳盜鈴”,URL看不到,但是用瀏覽器開發者工具是能看到的;不管以上哪種,“黑客”通過抓包,也是可以在資料傳輸途中拿到明文的資料;甚至可以對內容進行竄改/劫持,然後再傳給伺服器,或直接偽裝成伺服器回傳給你假的資訊。 如果使用HTTPS,那麼資料傳輸的時候 會先加密,相對安全。 至於參數校驗,肯定是前後端都需要做的,因為前端的JS校驗很容易被繞過的。
get會暴露,post不會。安全點
登入使用者名稱驗證不是一般都一起post到伺服器麼。
get 方法是會把參數暴露在連結尾部,但是瀏覽器本身並沒有任何加密,如果加密需要自己整。
對於某些表單值,是否有效以及非空等,就要在提交前有提示,提升用戶體驗。
都要搞,前端是為了使用者體驗(發起請求前就得知問題),後端是為了安全。
企業級服務的話上https,不要用明文。
假設使用者名稱必須在3位以上;密碼再6~32位;驗證碼4位;
1.點擊登陸的時候,偵測使用者名稱長度大於3,密碼長度6~32,驗證碼長度4;經由往下走,不通過alert;
2.組織參數;post到伺服器,name pwd code
3,伺服器接收參數
4.驗證嗎長度是否等於4,不等於4,return 驗證碼長度異常
5.從session中拿code,和參數code是否一致,不一致return 錯誤
6.偵測使用者名稱長度,密碼長度,不對return 錯誤
7.如果需要對pwd做加密
8.從資料庫中select name=name,pwd=pwd ,有則回傳user,沒有回傳0
GET 是直接把資料在URL裡顯示;
POST 是“掩耳盜鈴”,URL看不到,但是用瀏覽器開發者工具是能看到的;
不管以上哪種,“黑客”通過抓包,也是可以在資料傳輸途中拿到明文的資料;甚至可以對內容進行竄改/劫持,然後再傳給伺服器,或直接偽裝成伺服器回傳給你假的資訊。
如果使用HTTPS,那麼資料傳輸的時候 會先加密,相對安全。
至於參數校驗,肯定是前後端都需要做的,因為前端的JS校驗很容易被繞過的。
get會暴露,post不會。安全點