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

|| 我正在编写一个简单的网站,感谢您有责任避免将我的网站用于XSS,但是我真的不想花很多时间在详细或笨重的解决方案上。如果我只是禁止使用字符列表(无论如何人们都不需要描述自己喜欢的香肠),我能避免的最小列表是什么? 用户仍然需要能够编写纯文本段落。因此,我至少需要保留:
\' \" , . ; : - ( )
希望一些语法要求较低的用户可以准确地应用它们。我本来以<和>开始,但是搜索表明,仅凭它本身并不一定足够。     
已邀请:
只是因为你需要保持
\' \" , . ; : - ( )
并不意味着您需要将它们保留为原义字符。将所有特殊字符转换为其HTML实体(例如,将所有
<
转换为
&lt;
    
您可能不应该只禁止字符。取而代之的是,在输出回给用户之前,更喜欢HTML转义任何输入。请参阅OWASP XSS(跨站点脚本)预防备忘单。     
您没有提到要使用的服务器平台(.NET,Java,PHP等),并且每种平台都有处理XSS的方式略有不同。但是,有两个常量: 始终对照白名单验证您的输入。不要定义您不允许的内容,而是要定义允许的内容。 始终对输出进行编码,并使用正确的语言进行编码。大多数平台都有库为您执行此操作(即,用于ASP.NET的AntiXSS) 有关更深入地了解XSS的更多信息,请参见:面向.NET开发人员的OWASP Top 10第2部分:跨站点脚本(XSS)     

要回复问题请先登录注册