在 PHP 中保护查询字符串键和值的技巧

将信息传递到页面的最简单方法是将信息放在 URL 中。这当然被称为查询字符串,可以使用 $_GET[‘varname’] 访问查询字符串中的信息。很简单,是的。不安全,可能。以下是管理查询字符串信息的一些指南。

期望数字时的类型转换值

当您希望查询字符串中有一个整数时,请在使用前对值进行类型转换。这可以防止字符串值给您带来问题。

$id = (int) $_GET['i'];

净化输入

为您传递的每种类型的变量构建一个基本函数,您可以在整个网站中使用它。这确保了一致性和安全性。

确保 REGISTER_GLOBALS 关闭

这当然是显而易见的,但是启用 REGISTER_GLOBALS 是一个主要问题。确保它已关闭。

不要让变量名有意义

我们只是说拥有一个名称为“user_id”的$_GET 变量并不是一件好事。将其更改为“u”或其他名称。

<!-- no! -->
<a href="/profile.php?user_id=<?php echo $user_id; ?>">Your Profile</a>
<!-- yes! -->
<a href="/profile.php?q=<?php echo $user_id; ?>">Your Profile</a>

加密查询字符串值

如果您需要在页面之间传递敏感信息,请至少使用基本的加密算法或 md5。

<a href="/profile.php?i=<?php echo dw_encrypt($user_id); ?>">Click here</a>
赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏