求过滤危险字符函数,万分感谢!!!
我的过滤字符函数:
public static string HTMLEncode(string fString)
{
if (fString != string.Empty)
{
///替换尖括号
fString.Replace( " < ", "< ");
fString.Replace( "> ", "&rt; ");
///替换引号
fString.Replace(((char)34).ToString(), "" ");
fString.Replace(((char)39).ToString(), "' ");
///替换空格
fString.Replace(((char)13).ToString(), " ");
///替换换行符
fString.Replace(((char)10).ToString(), " <BR> ");
}
return (fString);
}
似乎没什么用处,至少单引号没有被过滤。我的错误处理:
Response.Write( " <script> window.alert( ' " + HTMLEncode(ex.Message) + " ') </script> ");
当错误提示中有单引号就不会弹出提示框。
------解决方案--------------------fString.Replace( " ' ", " ")把字符中出现的单引号过滤掉就OK
最好就用把要过滤的特殊字符保存在一下数组中。。。
最安全的方法是用存储过程来向数据库中查询、添加、删除数据。。。。