urlencode()是否可以防止XSS

use*_*531 4 php xss

$address并且$cityState是用户提供的,存储在DB中,并且可供其他人查看,如下所示.是否存在XSS的风险?应该htmlspecialchars()也可以在使用它?

<img src="http://maps.google.com/maps/api/staticmap?markers=color:blue|<?php echo(urlencode($address.' '.$cityState));?>&amp;zoom=14&amp;size=400x400&amp;sensor=false" alt="Map" />
Run Code Online (Sandbox Code Playgroud)

Nie*_*jes 7

是的,htmlspecialchars也应该使用 - 您首先将URL编码为URL安全,然后将其构建为HTML属性,这需要HTML样式的转义.

使用这两种编码后它不再可能在注入任意代码规模结束,因此,如果任何风险仍然存在他们是在谷歌的结束.因此,您可以认为此代码是安全的.


Nar*_*rek 3

没有什么神奇的PHP 函数可以保护您免受所有侵害。每一项保护措施在被黑客攻击之前都是 100% 安全的。您只需要了解您的网站可能从何处以及如何被黑客攻击,并每天改进您的保护。

您可以从有关 XSS 预防的文章中获得一些有趣的提示。

同样来自php.net urlencode 文档

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>
Run Code Online (Sandbox Code Playgroud)