我目前有一个简单的 目前,用户可以通过 但是,我目前解决这个问题的想法是:
仅允许使用a和img标记 使用textarea(不是一个好主意,因为那时用户可以复制和粘贴图像)
你们有什么建议? 你必须记住,为了防止xss,你需要在服务器端做到这一点.如果您的富文本编辑器(前YUI或tinyMCE)有一些javascript来阻止输入脚本标记,这不会阻止我检查您的http发布请求,查看您正在使用的变量名称,然后使用Firefox海报将我喜欢的任何字符串发送到您的服务器,以绕过所有客户端验证.如果您没有验证用户输入SERVER SIDE,那么您几乎没有任何效率来保护XSS. 任何客户端xss保护都与渲染用户输入的方式有关; 不是你如何收到它.因此,例如,如果您对所有输入进行了编码,那么它就不会呈现为html.这远离你想要完成的事情(只是锚和img标签).请记住,您允许渲染的漏洞越多,您暴露的漏洞就越多. 据说大部分的保护应该来自服务器端,并且根据您正在编写的内容(例如,asp.net或tomcat/derby/jboss)可以查看很多XSS过滤器. 我认为你只允许一个和img标签在正确的道路上.您必须记住的一件事是您可以将javascript命令放入标记的src属性中,因此请注意验证href属性.但是"允许任何事情,然后改变过滤器只允许某些事情"(AKA白名单过滤)的基本思想比"允许所有内容然后过滤掉我不想要的东西"(AKA黑名单过滤)更好. 在下面的评论中,Brian Nickel也说过这一点说明了这一点: 除了你想要保留的元素和属性之外的一切.我知道你在答案中提到了它,但由于它太可怕了所以需要重复. 您要做的另一件事是定义一个XSSFilterRequest对象(或沿着这些行的东西)并在过滤器中覆盖您的请求,以便对"getUrlParameter"和"getRequestParameter"对象的任何调用都运行请求值通过你的xss过滤器.这提供了一种干净的方法来过滤所有内容而无需重写现有代码. 编辑:xss过滤的python示例: Python HTML清洁剂/洗涤器/过滤器 用于XSS过滤的Python库?在div中插入一个持久的XSS ,我绝对不想要.
1> Dave..:
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有