tho*_*yer 0 c# asp.net security
我有多个网站,其中一些从POST获取参数,一些有JQuery AJAX处理程序,一些在查询字符串,一些在onclick asp:Button或ImageButton ..
我想制作一个方法,我可以放在我的所有网站,这将处理所有.我做了这个方法:
private void Si()
{
foreach (String key in Request.Params)
{
string temp = Request[key];
string[] array_split_item = new string[] { "–", ";", "/*", "*/", "@@", "char", "nchar", "varchar", "nvarchar", "alter", "begin", "cast", "create", "cursor", "declare", "delete", "drop", "end", "exec", "execute", "fetch", "insert", "kill", "open", "select", "sys", "sysobjects", "syscolumns", "table", "update", "<script", "<//script>", "‘" };
foreach (string strItem in array_split_item)
{
temp = temp.ToLower().Replace(strItem.ToLower(), "");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但有2个问题:
这是制作这种方法的最佳方法吗?
是否有可能知道某人是否已被"抓住"此方法试图注入某些东西?如果是这样,怎么样?
谢谢!
不,这是一种"保护"SQL注入的可怕方式.不要这样做.它不仅非常不安全(你永远不会抓住所有东西),它也会严重打破用户输入.为什么不允许用户使用"之后","等"等字样?那些是非常常见的词.
使用参数化查询,无法通过用户输入注入任何代码.
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |