Dha*_*dya 8 html javascript xss jquery
我目前有一个简单的<div contenteditable="true">工作,但是,这是我的问题.
目前,用户可以通过<script>在div中插入一个持久的XSS ,我绝对不想要.
但是,我目前解决这个问题的想法是:
你们有什么建议?
你必须记住,为了防止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也说过这一点说明了这一点:
除了你想要保留的元素和属性之外的一切.我知道你在答案中提到了它,但由于它太可怕了所以需要重复.
<img onerror="stealMoney()">
您要做的另一件事是定义一个XSSFilterRequest对象(或沿着这些行的东西)并在过滤器中覆盖您的请求,以便对"getUrlParameter"和"getRequestParameter"对象的任何调用都运行请求值通过你的xss过滤器.这提供了一种干净的方法来过滤所有内容而无需重写现有代码.
编辑:xss过滤的python示例:
| 归档时间: |
|
| 查看次数: |
3259 次 |
| 最近记录: |