我需要禁止避免XSS的最小字符集是什么

时间:2011-04-14 04:44:14

标签: xss

我正在写一个简单的网站,我很感激我有责任避免将我的网站用于XSS,但我真的不想花太多时间在详细或重量级的解决方案上。如果我只是简单地禁止一个角色列表(人们无论如何都不需要描述他们最喜欢的香肠)什么是我可以逃脱的最小的列表?

用户仍然需要能够写一段纯文本。所以我至少需要保持:

' " , . ; : - ( )

希望一些语法较少的用户可以准确地应用它们。我打算从<和>但搜索表明,就其本身而言,并不一定足够。

3 个答案:

答案 0 :(得分:1)

你可能不应该只禁止角色。而是在将任何输入输出回用户之前更喜欢HTML转义。请参阅OWASP XSS (Cross Site Scripting) Prevention Cheat Sheet

答案 1 :(得分:1)

仅仅因为你需要保持

' " , . ; : - ( )

并不意味着你需要将它们保留为那些文字字符。将所有特殊字符转换为其HTML实体(例如,将所有<转换为&lt;

答案 2 :(得分:0)

您尚未提及您正在使用的服务器平台(.NET,Java,PHP等),并且每种处理XSS的方式都略有不同。但是,有两个常量:

  1. 始终根据白名单验证您的输入。不要定义不会允许的内容,而是定义 允许的内容。
  2. 始终对输出进行编码,并使用正确的语言进行编码。大多数平台都有为您执行此操作的库(即ASP.NET的AntiXSS
  3. 有关更深入理解XSS的更多信息:OWASP Top 10 for .NET developers part 2: Cross-Site Scripting (XSS)