• 如何绕过客户端JS验证(图文讲解)


    我记得在刚接触ASP.NET编程的时候,微软帮助文档就特别强调,不能相信客户端提交 的任何数据,我们都要假象客户端提交的数据都是不安全的,所 以我们要对客户端提交的数据进行验证,所以.net里面给我们提供了验证控件,很方便,但是你在看这些控件的使用帮助的时候,微软肯定一样会强调,我们在 前台验证后,还需要服务端验证,为什么呢?估计很多新手会问了,.net里面的验证控件不是服务器控件吗?验证控件确实是服务器端控件,但是你要知道,这些服务器控件仅仅是把客户端验证的功能封装了而已,所以那些验证控件,其实还是客服端验证,而所有客户端验证,都不是真正的最安全的验证方法,我们必须要要进行服务端验证。为什么呢,请接着继续看。

    相信作为程序员,都会按照火狐浏览器,如果是经常进行web前端开发的话,肯定离不开火狐浏览器的。

    安装好FireBug插件

    然后,用快捷键F12,就会弹出FireBug窗口

    我写了一个简单的注册登录的功能,用了.net服务器验证控件,对输入进行验证,但是没有在服务端进行验证

    首先,我们不填写数据,提交注册按钮,我们知道,肯定提交不了的,如上图

    然后按着上面步骤操作,把红框里的代码:

    javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(“Button1″, “”, true, “1″, “”, false, false))

    删除掉,然后点击提交按钮,你会发现,数据竟然提交成功了,为什么呢?

    这就是我上面说的,其实.net的服务器验证控件,其实就是客户端验证,没有进行服务端验证的原因

    当我们删除验证事件的时候,自然就不能进行验证了,也就是我要说的主题,绕过了客户端JS验证

    后面我再用同样的方法,去掉登录的客户端验证代码,什么都不输入,进行登录,结果是登录成功

    互联网上存在很多网站,不管是.net开发的,还是PHP,还是JAVA,如果不进行服务端验证,按这个方法操作,都能绕过客户端验证

    其实现在我们很多没有安全意识的程序员,或者新手,都会忽略掉服务端验证,原因之一是,他们完全没有这个意识,即不懂。

    再者是有些程序员抱着侥幸的心理,或者说是偷懒,以为客户端验证了,服务端不验证,没事,一般人察觉不出来,可正是他们这种侥幸的心理,从而让他们的网站存在安全隐患。

    除了利用火狐浏览器能够绕过客户端JS验证,其实在黑客手里还有很多更加专业的工具,所以对数据进行客户端和服务端验证,非常有必要,也非常重要

    http://www.cnblogs.com/xxm6318/archive/2012/07/30/2614948.html#2437584

  • 相关阅读:
    SQL慢查询安装过程
    grafana + influxdb + telegraf , 构建性能监控平台
    JDK安装、java环境配置
    多源最短路Floyd 算法————matlab实现
    单源最短路Dijkstra算法——matlab实现
    Layout基本属性总结
    Scrollview中嵌套ListView(自定义组件解决)
    SQL 一列拆分多行
    C# 在异步中使用HttpWebRequest出现的“正在终止线程”错误的解决方案
    sqlserver中分区函数 partition by与 group by 区别 删除关键字段重复列
  • 原文地址:https://www.cnblogs.com/YEKEYISHUO/p/3087381.html
Copyright © 2020-2023  润新知