在回显post HTML时避免XSS
Avoiding XSS when echoing POSTed HTML
我有一个需要做以下事情的网页:
- 使用JavaScript动态创建HTML片段
- 打开新窗口 在新窗口中显示HTML
document.write
将HTML复制到窗口中。这在大多数情况下都有效,但是当原始窗口设置了document.domain
时,它会导致Internet Explorer出现问题。再加上document.write
现在不太受欢迎。
所以我的第二种方法是将HTML放到一个隐藏的表单中,将表单的目标设置为新窗口,然后POST表单。这意味着我需要服务器上的脚本通过回显post内容来响应表单。
但是这是危险的,因为有人可以在内容中提出包含<script>
标记的请求。如何避免潜在的XSS风险?我想我可以过滤掉像<script>
这样的东西,尽管这看起来很笨拙。如果我在服务器上创建HTML,我可以加密它,或者添加一些只能在服务器上验证的令牌。但是我是在客户端创建的。
EDIT:感谢到目前为止的过滤建议。我可能会选择走这条路,但我想知道:如果我不希望对我创建的HTML有任何限制怎么办?有什么方法可以验证文档是由我的页面创建的吗?
试试HTML净化器。
编辑:"有没有办法验证文档是由我的页面创建的?"
除非您创建另一个html服务器端副本并进行比较。用户可以查看脚本中的任何内容,尽管您可以使非技术用户难以查看。客户端Javascript可以做的任何事情,恶意用户都可以在Javascript控制台上做。
即使您以某种方式验证了请求来自您的脚本,恶意用户也可以使用Javascript控制台通过插入产生危险请求的代码行来修改您的脚本。所有GET和POST数据都必须被视为恶意数据
试试php。
PHPIDS (PHP入侵检测系统)是一个简单易用,结构良好,快速和先进的安全层为您的基于PHP的web应用程序。IDS既不删除、清除也不过滤任何恶意输入,它只是在攻击者试图破坏您的站点时进行识别,并按照您希望的方式做出反应。基于一套经过认可和严格测试的过滤规则,任何攻击都被赋予了一个数字影响等级,这使得决定黑客尝试之后应该采取什么样的行动变得容易。这可以从简单的日志记录到向开发团队发送紧急邮件,为攻击者显示警告消息,甚至结束用户的会话。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- 如何允许HTML标记用于输入而不易受XSS攻击
- 当我附加XSS过滤后的html时,它会打印原始html
- 避免使用XSS,并允许使用JavaScript使用一些html标签
- HTML 文本框值属性是否安全免受 XSS 攻击
- 服务器端从html页面(而不是jsp)输出编码,以防止XSS
- 是用户输入的带有Javascript的HTML显示给其他人,而不是HTML转义的XSS示例
- addslashes()在HTML属性中防止XSS是否安全?
- html() vs innerHTML jquery/javascript & XSS attacks
- 在回显post HTML时避免XSS
- XSS -哪些HTML标签和属性可以触发Javascript事件
- HTML字段XSS漏洞
- 利用jquery html编码XSS
- 在存储HTML时避免XSS攻击