如何安全地回复$ _GET?

时间:2013-11-02 16:53:05

标签: php

<?php
    echo $_GET['id'];
?>

对我来说看起来不太安全..展示GET元素的最佳选择是什么?

所有特殊字符上的preg_replacehtmlspecialchars

5 个答案:

答案 0 :(得分:3)

<?php
    echo htmlspecialchars($_GET['id']);
?>

答案 1 :(得分:3)

取决于您正在采取的措施 $_GET['id'];

如果您要将其插入数据库,只需使用 Prepared Statements 即可。 [那就够了]

如果您只想在HTML页面上显示它,请使用此代码。

<?php
    echo htmlentities($_GET['id']);
?>

答案 2 :(得分:3)

htmlspecialchars()如果是字符串,或者如果它是数字(intval()或(int)等),则转换为适当的类型,例如:

$id = (int)$_GET['id'];
//or
echo (int)$_GET['id'];

答案 3 :(得分:2)

如果是id,我认为它应该是数字 - 然后echo intval($_GET['id']);

答案 4 :(得分:1)

这应该足够了:

htmlspecialchars($_GET['id'], ENT_QUOTES, "UTF-8");