您的位置:首页 > 其它

常见的WEB针对客户机端的攻击方式与防护

2010-03-16 14:35 393 查看
1.通过绕过对输入选项的限制进行攻击:本方式是针对现在的WEB应用程序特点,即将网页源码下载到客户终端的机子上再运行的特点。通过对下载到本地的文件中的内容进行修改从而当运行下载到本地的更改过的文件时就可以运行攻击者自己改过的代码,从而可以绕过本身网站对用户输入的限制。
攻击方式:第一步将网站的源码下载到本地机子上;
第二步对源码中的一些输入限制条件进行修改,使之能够满足攻击者的需求;
第三步再运行修改过的源码,再次访问网站,并进行非法的输入,从而到达攻击的要求。
防护方式:第一种是将页面源码进行适当的隐藏,不可让客户端轻易的查看(如程序员联合开发网的代码上传页面,它是通过组件的形式来做这个页面的,从而即使你下载了源码,你也不能够看到有利于攻击的有效信息);
第二种是控制访问权限,即当攻击者运行本地修改地的代码时,将无法再进行原网页相同的操作(如对CSDN的上传资源页面,当你下载到本地并将其源码进行修改之后再运行,虽然运行正常但当你要通过其访问网站服务器,即上传资源时将无法正常操作)。
第三种对于比较敏感和关键的数据,在客户端进行验证同时最好在服务器端也要进行相应的验证。
2.绕过客户机端的验证:客户机端的一验证一般都是通过相应的脚本语言来实现的,所以针对这一特点,我们可以通过以下的方式来进行这样的攻击。
攻击方法:第一种通过一些浏览器的脚本禁用功能,通过禁用脚本使得客户机上的验证无法正常运行。不过这种方式有一个缺点:可能会影响到其它的功能的运行。所以这并不是一种很理想的攻击方式。
第二种类似于第一种,不过其是针对性的禁止脚本运行。即只针对会进行客户机端验证那一部分功能的脚本进行删除(即把HTML源码下载到本地后将里面相应的功能代码进行删除,之后再加载更改过的页面文件进行运行),从而达到跳过客户机端验证的效果。
防护方法:这种攻击产生的主要原因是对客户机端的绝对信任从而导致了出现这种攻击的可能性通过客户机端与服务器端双重验证的方式来进行防护是比较理想的一种方式。虽然这样可能导致应用程序性能的一定下降,但是在现在这样一个计算机性能已经发展到比较高水平的时代里这已经不是主要考虑的因素。
验证输入的方法:
白名单:即把所有合理合法的输入列出来,并对用户的输入进行合法性检查。虽然面比较大,但是其不会出现遗漏漏洞的危险。
黑名单:即列出所有的可能存在危险的输入,来查看是否有非法输入;这种方式的优点目的明确,但是也有一个大问题,就是不可能将所有的非法输出都列出来。所以当你遗漏了其中一个之后很容易出现BUG。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: