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

我如何HTML编码Web应用程序中的所有输出?

如何解决《我如何HTML编码Web应用程序中的所有输出?》经验,为你挑选了1个好方法。

我想在我的Web应用程序中阻止XSS攻击.我发现HTML编码输出可以真正防止XSS攻击.现在的问题是我如何对我的应用程序中的每个输出进行HTML编码?我有办法实现自动化吗?

我很欣赏JSP,ASP.net和PHP的答案.



1> JW...:

不应该做的一件事就是过滤输入数据.人们经常建议这样做,因为它是最简单的解决方案,但它会导致问题.

输入数据除了作为HTML输出外,还可以发送到多个地方.例如,它可能存储在数据库中.过滤发送到数据库的数据的规则与过滤HTML输出的规则非常不同.如果您对输入中的所有内容进行HTML编码,则最终会在数据库中使用HTML.(这也是为什么PHP的"魔术引号"功能是个坏主意.)

您无法预测输入数据将传输的所有位置.安全的方法是在数据发送到某处之前准备好数据.如果您要将其发送到数据库,请转义单引号.如果要输出HTML,请转义HTML实体.一旦它被发送到某个地方,如果您仍然需要处理数据,请使用原始的未转义版本.

这是更多的工作,但您可以通过使用模板引擎或库来减少它.

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