为了防止非法信息的提交,一般都会用js先验证一遍,万一服务器端验证不远不如js完全,那么攻击者可以绕开我们的js验证提交数据吗?
可以直接在浏览器中实现吗?有没有一种浏览器或工具,可以禁止js中一些与验证相关的关键字或函数的执行,却不禁止一些动作(如提交)的执行,以达到绕开验证正常提交的目的?
如果有这样的工具,那么我们在客户端的验证再严密不都是徒劳吗?

解决方案 »

  1.   

    通过在地址栏写js语句毙掉验证,或者用firebug等工具直接修改js.都可以绕过客户端的js验证,甚至直接不走你的画面而是直接向你的后台提交数据.
    所以说光靠客户端的js验证是不可靠的.
      

  2.   

    简单来说就是2种常用的数据提交方式GET,POST。GET可以方便的通过修改网址来达到。POST则需要通过form表单,这点我们可以通过把网页存到本地然后把javascript全删除掉,就不存在js的检测了。但html也存在一些hash(哈希值,避免你外部提交),这是你可以靠一些工具和技巧,例如curl。总之js检测对于有心人来说形同虚设。
      

  3.   

    前台的javascript检测是一种用户体验,主要是让用户在不刷新页面、不需要返回上一页的情况下完善form内容进行提交。与所谓的放置注入、跨站、RSS攻击毫无关系。
      

  4.   

    啊!谢谢!
    那平时干脆在处理危威时少在js上下功夫得了,多在服务器端想想,客户端仅仅用来减少错误信息的提交。那么 那个Fckeditor好像有很多东西都是由js处理安全问题而并没有通过服务器端处理(可能我没注意到),那不很危险。Fckeditor安全吗?用它好像不能屏蔽掉SQL注入吧,屏蔽SQL注入还真麻烦,貌似屏了那些东西后,自己想在文章里写那些东西时可能带来麻烦一样(我没试过,不太清楚)