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

确保针对XSS的应用程序

如何解决《确保针对XSS的应用程序》经验,为你挑选了1个好方法。

我们目前正在使用OWASP Antisamy项目来保护我们的应用程序免受XSS攻击.当任何给定表单提交给服务器时,每个输入字段都被清理.它工作正常,但我们在公司名称,组织名称等字段方面存在问题.

例如:Ampersand为AT&T进行转义,公司名称显示错误(显示转义字符).

我们手动更新数据库中的字段以解决此问题.然而,你可以想象这是一个痛苦的脖子.

有没有办法使用OWASP反歧视来解决这个问题,还是应该使用不同的库?



1> SilverlightF..:

您应该只在输出上编码,而不是在输入上编码.如果用户输入AT&T您的应用程序,则应将其存储在AT&T数据库中.不需要对其进行编码,但当然要确保使用参数化查询,这将阻止诸如'打破SQL命令上下文和导致SQL注入之类的字符.

输出时,这是您需要对字符进行编码的唯一时间.例如,AT&T应该AT&T在输出到HTML时编码,因此它在浏览器中显示为AT&T.

看起来您的应用程序正在对输入进行编码并对输出进行编码,因此上面的字符串将AT&T在HTML 输出时进行双重编码,从而导致问题.删除输入编码以解决此问题.

您应该仅在输出时编码的原因是,如果您决定要将数据输出到其他格式(如JSON或JavaScript),则编码是不同的.O'leary将成为O\x27leary如果适当地编码为JavaScript,这不会在编码是HTML正确显示O'leary.

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