当前位置:  开发笔记 > 编程语言 > 正文

跨站点脚本和HTML编码

如何解决《跨站点脚本和HTML编码》经验,为你挑选了1个好方法。

如果我重新显示网站用户输入的任何数据的HTML编码,这会阻止CSS漏洞吗?

此外,是否有可用的工具/产品将为我清理我的用户输入,因此我不必编写自己的例程.



1> Edward Z. Ya..:

这个问题有各种微妙之处,尽管答案一般是肯定的.

您网站的安全性在很大程度上取决于您放置数据的位置.如果你把它作为合法文本,攻击者基本上没有办法执行XSS.如果将其放在属性中,如果您忘记了引号或不检查多字节格式,则可能存在攻击.如果你把它放在一个JSON变量中,那么没有正确的转义会导致任意的JavaScript.等等.上下文非常重要.

其他用户建议使用XSS删除或XSS检测功能.我倾向于认为XSS删除是用户不友好的; 如果我发布一个像这样的电子邮件地址,并且你的删除XSS功能认为它是一个HTML标签,那么这个文本就会神秘地消失.如果我正在运行XSS论坛,我不希望删除人们的示例代码.检测更加明智; 如果您的应用程序可以告诉某人何时攻击它,它可以禁止IP地址或用户帐户.但是,您应该小心这种功能; 无辜者可以而且会陷入交火之中.

验证是网站逻辑的重要组成部分,但它也独立于转义.如果我不验证任何东西,但逃避一切,将不会有XSS攻击,但有人可以说他们的生日是"音乐死亡的那一天",并且应用程序不会更明智.从理论上讲,对某些数据类型进行严格的验证可以执行转义的所有职责(思考数字,枚举等),但无论如何,这是防御的一般良好做法.即使你是100%它也是一个整数.它可能不是.

逃避明文是一个微不足道的问题; 如果你的语言不给你一个功能,一个字符串替换为<,>,",'以及&与其相应的HTML实体会做的伎俩.(只有在不使用UTF-8时才需要其他HTML实体).允许HTML标记非常重要,并且值得拥有自己的Stack Overflow问题.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有