我很困惑如何逃避这行PHP代码:
<p><a href=/foobar.php?<?php echo http_build_query(array("ic" => "123", "address" => "12 Hill Street", "name" => "John Doe" )); ?>>Testing</a></p>
urlencode
使验证通过,但$ _GET请求变得混乱。 htmlspecialchars
不会对等号进行编码。我错过了什么?
答案 0 :(得分:2)
引用 您的HTML属性,对值进行HTML编码:
<p><a href="/foobar.php?<?php echo htmlspecialchars(http_build_query(...)); ?>">Testing</a></p>
^ ^
除非您引用,否则解析器无法正确查找属性值的结尾。