.net网站检测到有注入攻击怎么办?

来源:百度知道 编辑:UC知道 时间:2024/06/25 10:20:12
是这样的,我有 网站一个页面向另一个页面传递参数
default2.aspx?id=35
default2.aspx?id=39
我朋友说他检测到有注入漏洞
于是我就把传过来的这一些参数替换
public string k(string y)
{
y = y.Replace(" ", "'");
y = y.Replace(" ", "=");
y = y.Replace(" ", """);
return y;
}
然后用这方法替换掉
但是我不理解'是单引号吧?怎么替换空就检测没漏洞了?应该是反过来吧?y = y.Replace("'"," ");
求各位大哥指教下!感激不尽
本来传过来的是数字的,我当时神经就把传过来的数字转换为字符串了,然后在去替换危险字符,结果y = y.Replace(" ", "'"); 这样写提示没漏洞了,后来这样写y = y.Replace("'"," ")空替换单引号反而有漏洞了,百思不得奇解,各位大哥一定帮帮小弟把这原理弄清楚,谢谢!!

这样的替换不仅不全面,而且是不能替换成空格的,这样没法反转化过来,还有,替换顺序错了吧,前面的参数是要被替换掉的内容,我的替换方法:
strProcessed = strInput.Replace("!","!!");
strProcessed = strProcessed.Replace("%","!%");
strProcessed = strProcessed.Replace("'","''");
strProcessed = strProcessed.Replace("_","!_");
strProcessed = strProcessed.Replace("[","![");
strProcessed = strProcessed.Replace("]","!]");
strProcessed = strProcessed.Replace(@"""",@"!""");
strProcessed = strProcessed.Replace(" ","! ");
strProcessed = strProcessed.Replace(".","!.");
strProcessed = strProcessed.Replace("&","!&");
strProcessed = strProcessed.Replace("