javascript - 表单提交的时候密码验证的问题?
问题描述
对表单这一块不太熟,有以下几个疑惑?
1.诸如在登录验证用户名和密码的时候,二者都是同样的方式提交到post到服务器吗?2.get方式会把参数暴露到链接尾部(实际上会通过把key键值加密然后后端再解密校验)?3.现在的表单常规处理方式是什么样的?4.密码校验的时候,诸如在比对密码要求密码中不能是3位同样的连续数字?这个密码会存在本地?还是服务器端来校验
问题解答
回答1:登录用户名验证不是一般都一起post到服务器么。
get 方法是会把参数暴露在链接尾部,但是浏览器本身并没有任何加密,如果加密需要自己整。
对于一些表单值,是否有效以及非空等,就要在提交前有提示,提升用户体验。
都要搞,前端是为了用户体验(发起请求前就得知问题),后端是为了安全。
企业级服务的话上https,不要用明文。
回答2:假设用户名必须在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
回答3:GET 是直接把数据在URL里显示;POST 是“掩耳盗铃”,URL看不到,但是用浏览器开发者工具是能看到的;不管以上哪种,“黑客”通过抓包,也是可以在数据传输途中拿到明文的数据;甚至可以对内容进行篡改/劫持,然后再传给服务器,或者直接伪装成服务器返回给你假的信息。如果使用HTTPS,那么数据传输的时候 会先加密,相对安全。至于参数校验,肯定是前后端都需要做的,因为前端的JS校验很容易被绕过的。
回答4:get会暴露,post不会。安全点
相关文章:
1. 为什么span的color非要内联样式才起作用?2. javascript - swiper.js嵌套了swiper 初始设置不能向下一个滑动 结束后重新初始3. angular.js - angular-ui-bootstrap 报错无法使用?4. python - 如何修改twisted自带的日志输出格式?5. docker - 如何修改运行中容器的配置6. 高并发写入和更新mysql7. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?8. 老师,请问我打开browsersync出现这个问题怎么解决啊?9. 请问一下各位老鸟 我一直在学习独孤九贱 现在是在tp5 今天发现 这个系列视频没有实战10. 在cmd下进入mysql数据库,可以输入中文,但是查看表信息,不显示中文,是怎么回事,怎新手,请老师

网公网安备