对表单这一块不太熟,有以下几个疑惑?
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不会。安全点