我正在写一个简单的网站,我很欣赏我的责任,以避免我的网站被用于XSS,但是我并不想花太多时间在详细或重量级的解决方案。如果我只是简单地禁止一个角色列表(人们不需要描述他们最喜欢的香肠),我可以逃脱的最小列表是什么?什么是我为了避免XSS而需要禁止的字符的最小集合是什么
用户仍然需要写一段纯文本的能力。所以,我需要至少保持:
' " , . ; : - ()
,希望一些不太语法不便的用户可以准确地应用它们。我打算从<开始,>但搜索表明,它本身并不足够。
我正在写一个简单的网站,我很欣赏我的责任,以避免我的网站被用于XSS,但是我并不想花太多时间在详细或重量级的解决方案。如果我只是简单地禁止一个角色列表(人们不需要描述他们最喜欢的香肠),我可以逃脱的最小列表是什么?什么是我为了避免XSS而需要禁止的字符的最小集合是什么
用户仍然需要写一段纯文本的能力。所以,我需要至少保持:
' " , . ; : - ()
,希望一些不太语法不便的用户可以准确地应用它们。我打算从<开始,>但搜索表明,它本身并不足够。
仅仅因为你需要保持
' " , . ; : - ()
并不意味着你需要将它们保留那些文字字符。转换所有特殊字符的HTML实体(例如将所有<
到<
你可能不应该只是禁止字符。相反,在将输出输出回给用户之前,首选HTML转义任何输入。见OWASP XSS (Cross Site Scripting) Prevention Cheat Sheet。
你没有提到你与(.NET,Java和PHP等)使用的服务器平台,每个人都有稍微不同的方式。处理XSS的。然而,有两个常量:
更多信息上更深入地了解这里的XSS:OWASP Top 10 for .NET developers part 2: Cross-Site Scripting (XSS)