如何逃脱PHP的http_build_query?

时间:2015-12-11 14:43:43

标签: php escaping

Validator errors

我很困惑如何逃避这行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不会对等号进行编码。我错过了什么?

1 个答案:

答案 0 :(得分:2)

引用 您的HTML属性,对值进行HTML编码:

<p><a href="/foobar.php?<?php echo htmlspecialchars(http_build_query(...)); ?>">Testing</a></p>
           ^                                                                  ^

除非您引用,否则解析器无法正确查找属性值的结尾。