Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 针对XSS保护应用程序_Security_Xss_Owasp - Fatal编程技术网

Security 针对XSS保护应用程序

Security 针对XSS保护应用程序,security,xss,owasp,Security,Xss,Owasp,我们目前正在使用OWASP反艾米项目来保护我们的应用程序免受XSS攻击。当任何给定表单提交到服务器时,每个输入字段都会被清理。它工作正常,但我们在公司名称、组织名称等字段上有问题 例如:AT&T的符号被转义,公司名称显示错误,并使用转义字符显示 我们手动更新数据库上的字段以解决此问题。然而,正如你所能想象的,这是一个令人头痛的问题 有没有一种方法可以使用OWASP antisamy解决这个问题,或者我们应该使用另一个库?您应该只对输出进行编码,而不是对输入进行编码。如果用户在应用程序中输入AT&

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

例如:AT&T的符号被转义,公司名称显示错误,并使用转义字符显示

我们手动更新数据库上的字段以解决此问题。然而,正如你所能想象的,这是一个令人头痛的问题

有没有一种方法可以使用OWASP antisamy解决这个问题,或者我们应该使用另一个库?

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

输出时,这是唯一需要编码字符的时间。e、 g.AT&T应编码为AT&;当输出为HTML时,它在浏览器中显示为AT&T

您的应用程序似乎在对输入进行编码,同时也对输出进行编码,因此上面的字符串在输出时将被双重编码为at&;amp;在您的HTML中出现错误,导致问题。请删除输入编码以解决此问题

只在输出时进行编码的原因是,如果您决定将数据输出为不同的格式,如JSON或JavaScript,则编码是不同的。如果为JavaScript正确编码,O'leary将变为O\x27leary,而JavaScript在编码为O&039的HTML中不会正确显示;李里