日期:2014-05-18  浏览次数:20441 次

想跟大家讨论一个实际项目中遇到的问题!
想跟大家讨论一个实际项目中遇到的问题!
我们公司的一个新闻网站,新闻提供外部调用!
例如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的也是过滤那三个字符