1

我正在使用 asp.net htmleditorextender,不幸的是,现在没有有效的 XSS sanitizer。因此,作为快速解决方案,我将替换用户输入中的所有脚本和 java 单词,如下所示

    var regex = new Regex("script", RegexOptions.IgnoreCase);
    srSendText = regex.Replace(srSendText, "");

    regex = new Regex("java", RegexOptions.IgnoreCase);
    srSendText = regex.Replace(srSendText, "");

我可以假设我免受 XSS 攻击吗?

实际上我正在使用 htmlagilitypack 反 xss 消毒剂,但它甚至没有删除脚本标签,所以完全没用

4

2 回答 2

4

不,你不能。

攻击者可以通过例如编码scriptscript.

确保代码免受 XSS 攻击是通过确保任何可能来自用户的内容在没有适当编码的情况下永远不会放入页面中来完成的,以确保文本中的任何代码都不会被执行。

于 2013-04-23T12:38:26.663 回答
1

在我看来,自定义 XSS 预防通常是不可以的,因为您应该始终使用库。然而剥离scriptjava不够,任何传递给服务器的东西都应该使用HttpUtility.HtmlEncode它来编码来自用户的任何输入。

还要确保validateRequest="true"在配置文件中设置。

其他危险标签可能包括:

  • 小程序
  • 身体
  • 嵌入
  • 框架
  • 脚本
  • 框架集
  • html
  • 框架
  • 图像
  • 风格
  • 关联
  • 目的

http://msdn.microsoft.com/en-us/library/ff649310.aspx

于 2013-04-23T12:37:53.173 回答