在DOM中使用GET参数的安全方法?

时间:2017-07-17 10:59:22

标签: php html security xss

以下是我的代码的简化:

$html = "<a class='myclass' href='/path?arg='" . $_GET['param']. "'>mylink</a>";

今天我正在阅读有关XSS攻击的内容,我认为我的代码处于XSS攻击之下。我不确定,但闻起来如此。

无论如何,如果我的想法是正确的,我该如何避免?根据一些研究,一种方法是使用strip_tags()。现在我想知道,我可以依靠它吗?那就够了吗?

2 个答案:

答案 0 :(得分:1)

这是关于用正确的函数编码的东西。 始终查看您想要的产品,然后选择编码器!

<强>样品:

在构建HTML时,最好使用htmlspecialchars和/或htmlentities。

当你构建SQL时,它很适合用于mysql PDO :: quote或mysqli_real_escape_string。

<强>答案:

在您的情况下,您正在构建一个URL。为此,您需要使用urlencode

此外,您还需要将其转义为使用htmlentities更正HTML,因为您将在下一步中构建HTML。 请参阅PHP手册中的示例 - &gt; urlencode链接(示例#2)。

答案 1 :(得分:-1)

只要您想输出来自用户的参数,就应该使用 htmlspecialchars()

$variable = htmlspecialchars($_GET['param'], ENT_QUOTES, 'UTF-8');