想跟大家讨论一个实际项目中遇到的问题!
想跟大家讨论一个实际项目中遇到的问题!
我们公司的一个新闻网站,新闻提供外部调用!
例如news.aspx?classid=12 这样就是调用娱乐类新闻
但是现在不知是恶意攻击还是什么原因,在事件查看器里面总发现一些错误的调用 如: news.aspx?classid=1***
调用的IP大部份是深圳的,导致服务器上的IIS总是死锁,现在只能用防火墙把那个错误的IP给禁止!我的程序中只是对
Request.QueryString[ "classid "]!=null && Request.QueryString[ "classid "].tostring()!= " "
这两个进行了控制,却没想到会有 Request.QueryString[ "classid "].tostring()== "1*** " 的这种情况,请问大家有没有对这种页面之间传的参数进行过这类控制?
以下是事件查看器里的日志:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 2007-7-25 7:58:31
Event time (UTC): 2007-7-24 23:58:31
Event ID: 601740fd3b5d4962adb6da5ca20a8f32
Event sequence: 92
Event occurrence: 13
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1332408642/Root-2-128297948151093750
Trust level: Full
Application Virtual Path: /
Application Path: E:\webstation\stock\
Machine name: SVCTAG-3CACE
Process information:
Process ID: 2744
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: SqlException
Exception message: 第 1 行: '* ' 附近有语法错误。
Request information:
Request URL: http://www.ytqh.com/List.aspx?ClassId=51***
Request path: /List.aspx
User host address: 219.134.225.153
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
[解决办法]
沙发,帮忙顶
[解决办法]
URL传参的时候最好UrlEncode和UrlDecode
[解决办法]
用Replace过滤掉 '号以及-号以及;号,然后转换成int,如果有字符的话也会出错的
[解决办法]
把传值加密好了
[解决办法]
mark
[解决办法]
classid是不是int类型的?如果是的话,int.tryparse一下不就行了。
[解决办法]
没搞过啊,只有严格验证传过来的参数咯
[解决办法]
string的也是过滤那三个字符