前天,写的系统被测评。测评的人在我的页面textbox输入 <script>alert("test")</script> 内容。刷新页面这个脚本被执行弹出对话框。大家帮忙出出注意,这个最佳解决方案是啥
解决方案 »
- Socket中的三个参数如何填写?
- |M| 多个相同的Datatable如何合并他们的数据 第二贴,刚才hbxtlhx(平民百姓)不是我要的效果 谢谢
- div 滚动条问题,在线等100分
- 关于页面上绑定数据库中一行内容,不用控件!
- 我想把用户的登录信息用全局变量的形式保存下来。请问用什么方法?Session,数据表等?您们是用什么方法呢?
- 关于去图片的长宽的问题
- 有人网站的文章最后都有 如点击2000次 这个2000次怎么动态计算?
- 真的搞不懂了!请高手帮忙看看哪错了?(webgrid保存问题)
- 如何实现页面上提供登录多个邮箱
- asp的session取不过来,帮忙看一下啊! 急
- 一上午没有解决,奉100分以谢高手,表达敬意
- 救命阿,asp.net 在设计那,不知点了什么和按了什么
public static string HTMLEncode(string txt)
{
string Ntxt = txt;
Ntxt = Ntxt.Replace(" ", " ");
Ntxt = Ntxt.Replace("<", "<");
Ntxt = Ntxt.Replace(">", ">");
Ntxt = Ntxt.Replace("\"", """);
Ntxt = Ntxt.Replace("'", "'");
Ntxt = Ntxt.Replace("\n", "<br>");
return Ntxt;
}
可以过滤一下HTML代码呀。
或者替换特殊字符
html = regex1.Replace(html, ""); //过滤<script></script>标记
和
Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);//<script></script>标记 根据需要选择
和
System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
html = regex1.Replace(html, "");
AntiXSS Library
/// 禁止"javascript","vbscript","script","iframe","link","style"等高危代码的执行 (目前比较局限,待用正则进行改进完善)
/// </summary>
public static string HtmlScriptFilter(string strInput)
{
strInput = strInput.ToLower();
if (String.IsNullOrEmpty(strInput))
{
return "";
}
else
{
string strResult = strInput;
//script
strResult = strResult.Replace("<script", "<script");
strResult = strResult.Replace("</script>", "</script>");
//vbscript
strResult = strResult.Replace("<vbscript", "<vbscript");
strResult = strResult.Replace("</vbscript>", "</vbscript>");
//iframe
strResult = strResult.Replace("<iframe", "<iframe");
strResult = strResult.Replace("</iframe>", "</iframe>");
//style
strResult = strResult.Replace("<style", "<style");
strResult = strResult.Replace("</style>", "</style>");
//link
strResult = strResult.Replace("<link", "<link");
strResult = strResult.Replace("</link>", "</link>");
//javascript
strResult = strResult.Replace("javascript:", "javascript :");
//vbscript
strResult = strResult.Replace("vbscript:", "vbscript :");
//ecmascript
strResult = strResult.Replace("ecmascript:", "ecmascript :"); return strResult;
}
}