防URL参数攻击方案
本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!
现在的网站基本上都有后台数据库,而这个东东也就成了攻击的重点。从URL传入特殊参数成为了一种常用的攻击手段,就是对那些为了提高搜索率做了简单URL重写的网页也一样。我下面给出的解决方案基本上能解决受到攻击的危险,但也有一些小小的弊端。
Yes,最容易想到的方法就是不要将URL参数在客户端显示出来。但这基本上是不可能的,倒不是技术上行不通,是因为操作起来会把人累死,而且程序结构(可读性)会受到严重威胁。折中的办法就是将URL参数部分加密,这样就可以杜绝攻击者对URL做文章了,同时网页的搜索率不会受到太大的影响,但网页的URL将不再好记。一个简单的示例如下:
http://192.168.0.1/app1/editProfile__AsamrlDcFZr0a0eTdqX0U0U8c81rzSzfBgYJCf6iQXB.aspx
其中,双下划线“__”是分割符号,后面的AsamrlDcFZr0a0eTdqX0U0U8c81rzSzfBgYJCf6iQXB是加密了的参数列表,解密出来后为userId=13972&action=delete。上面的URL将被transfer到:
http://192.168.0.1/app1/editProfile.aspx?userId=13972&action=delete
另外,关于URL Rewriting,你可以使用HttpModule,也可以使用404错误来dispatch你的页面。