javascript - 前端密码校验的机制问题?
高洛峰
高洛峰 2017-04-11 12:53:08
0
5
359

keyup表单事件读input框的字符内容。。

疑问:安全性怎么样,change事件可以吗,你们是怎么做的?

修改1:我理解的安全性是指,jq的keyup或者change是怎么读取识别input的字符的,里面的机制是什么样的,既然能被前端读取,你们就意味着可以截获?还是浏览器内部识别的?不解

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답 (5)
PHPzhong

不知道你说的安全性指的是什么,是指通过前端校验用户的输入来保证站点安全的能力吗?

对于服务器端来说,正确的做法是所有前端传入的参数都不应该被信任。或者说,前端对用户输入的校验做的再严格再合理,传入到服务器端时,服务器端都要对传入的数据重新进行校验。或者你可以理解成,前端校验的目的不是为站点安全保驾护航的,其主要目的是为用户服务为了提高用户体验的。

keyupchangeblur等在实际开发过程中都有使用的,具体选用哪个事件进行监听是根据你具体的校验目的决定的。keyup相较于changeblur更具有实时性,可以快速针对用户的输入进行校验或判断。如在注册表单中,设置登录密码,可以通过监听该事件快速实现对密码强度的判断并展示给用户,提醒用户增加密码强度。但是实时性可能并不是最好的,还拿注册表单举例子。在校验用户账户名是否存在时,如果监听keyup,用户刚按下按键就进行判断,则前端页面会在用户输入过程中向服务器发送大量的请求,这会对服务器端造成较大的不必要的压力、同时也会消耗大量的客户端的资源、甚至造成表单校验的不可控。这时监听changeblur事件就显得更为合理。

    黄舟

    jq的keyup或者change是怎么读取识别input的字符的,里面的机制是什么样的,既然能被前端读取,你们就意味着可以截获?还是浏览器内部识别的?

    这个是JavaScript实现的功能。当然就可以通过js来获取。

    基本上,前端用户输入校验都是通过ajax实现的,一般来说分成以下两种

    1. 实时检测
      实时检测一般是由前端js负责,最后输入框失去焦点时通过ajax请求服务端检测。这样既能实时化,也不会对服务端造成压力。实现方式:change+blur事件。

    2. 失焦检测
      当光标从输入框离开时,通过ajax请求服务端检测。服务端压力小,缺点是不能实时检测。实现方式:blur事件。

    以上两种方式,只是对于一般用户的提示。
    安全性永远不会通过客户端来保证,交互开发有一条准则是一定要遵守的:永远不要信任用户的输入。
    不论是什么样的输入,最后提交到服务端,都要由服务端完成校验。

      小葫芦

      不知道题主说的安全性是指哪方面?

      keyup表单事件读input框的字符内容 这个说的是前端js监听吗?

      其实对于前端安全的话,只要把前端看成是完全不安全的,任何非法输入都可能发生,那么整个网站就安全了。

        小葫芦

        前端只做简单的表单校验,提高用户体验,安全的问题应该在后端开发。

          巴扎黑

          包括最佳答案都没回答楼主问题。密码肉眼看是加密的,实际上就是明文,网络传输也是明文,除非是https协议。前端除了httpS之外对加密无能为力。

            최신 다운로드
            더>
            웹 효과
            웹사이트 소스 코드
            웹사이트 자료
            프론트엔드 템플릿
            회사 소개 부인 성명 Sitemap
            PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!