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. apache - 想把之前写的单机版 windows 软件改成网络版,让每个用户可以注册并登录。类似 qq 的登陆,怎么架设服务器呢?2. dockerfile - [docker build image失败- npm install]3. docker-compose中volumes的问题4. java - 对于jsp技术,aspx技术的困惑5. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?6. javascript - [,null]是什么用法7. java - idea如何不显示.idea target这些文件夹8. docker gitlab 如何git clone?9. android - 安卓做前端,PHP做后台服务器 有什么需要注意的?10. python - Django有哪些成功项目?
