如何在留言板屏蔽危险字符

wolf1947 2012-07-09 09:05:51
目前,我们网站那里有个留言板,如何将用户输入的危险字符,转换下!请教高手!我们网站是ASP.NET开发的!
...全文
234 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
voiceofme 2012-07-10
  • 打赏
  • 举报
回复
1.网站最好有一定审核功能。
2.匹配字典,参考百度贴吧。
zhangdaowu5 2012-07-09
  • 打赏
  • 举报
回复
js+正则
yangxxxxxx66 2012-07-09
  • 打赏
  • 举报
回复
你说的危险字符是不是脚本攻击?
类似:<script></script>?
可用下面的正则将其去除
Regex.Replace(str, "<script[^>]*?>.*?</script>", "");
HIpity 2012-07-09
  • 打赏
  • 举报
回复


/// <summary>
///这个方法确保用户的输入不是恶毒的
/// </summary>
/// <param name="text">输入字符串</param>
/// <param name="maxLength">最大长度</param>
/// <returns>转换后的字符串</returns>
public static string InputText(string text, int maxLength)
{
text = text.Trim();
if (string.IsNullOrEmpty(text))
return string.Empty;
if (text.Length > maxLength)
text = text.Substring(0, maxLength);
text = Regex.Replace(text, "[\\s]{2,}", " "); //two or more spaces
text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|\\n)*?>)", "\n"); //<br>
text = Regex.Replace(text, "(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", " "); //
text = Regex.Replace(text, "<(.|\\n)*?>", string.Empty); //any other tags
text = text.Replace("'", "''");
return text;
}
liangweiqing00 2012-07-09
  • 打赏
  • 举报
回复
replace
宝_爸 2012-07-09
  • 打赏
  • 举报
回复
什么危险字符,如果是防止XSS (Cross Site Scripting)的话,可以使用Microsoft Anti-Cross Site Scripting Library V4.2:

http://www.microsoft.com/en-us/download/details.aspx?id=28589

使用方法参考(例子使用的版本比较老,不过使用方式应该差不多。):
Microsoft Anti-Cross Site Scripting Library V1.5: Protecting the Contoso Bookmark Page
http://msdn.microsoft.com/en-us/library/aa973813.aspx
wolf1947 2012-07-09
  • 打赏
  • 举报
回复
能贴出相关的代码吗?
mizuho_2006 2012-07-09
  • 打赏
  • 举报
回复
str.replace("危险字符","XXX")
q107770540 2012-07-09
  • 打赏
  • 举报
回复
1。 采用HTML编码保存,显示时再解码
2。 用字典保存要替换的危险字符,保存/显示前做字符替换处理
huayy 2012-07-09
  • 打赏
  • 举报
回复
你的意思是留言板内容是马上公开的?
那参数化后,再将<转换成<>转换成>基本就可以了!
callmesai 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
参数化提交是王道!
[/Quote]

参数化提交只是在sql注入方面有用

xss现在还不能做到100%防御吧 只能过滤掉大部分有害字符 增加被入侵难度
huayy 2012-07-09
  • 打赏
  • 举报
回复
参数化提交是王道!

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧