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. 微信chooseImage接口部分机型选择图片后莫名其妙的跳转其他页面2. font-family - 我引入CSS3自定义字体没有效果?3. c++ - win764位环境下,我用GCC为什么指针占8个字节,而long是4个字节?4. 为什么HTML5规范中会包含一些和html无关的东西?如本地存储等。5. 找一个权威、实战的微信扫码授权登录网站的开发教程或者文章6. HTML5禁止img预览该怎么解决?7. web前端是做什么的8. css - 百度Ueditor富文本编辑器初始化赋值font-size没有值?9. css3 - 微信前端页面遇到的transition过渡动画的bug10. css - 关于input标签disabled问题