gpt4 book ai didi

PHP 安全性、intval 和 htmlspecialchars

转载 作者:可可西里 更新时间:2023-11-01 07:47:06 28 4
gpt4 key购买 nike

<?php

$id = intval($_GET['id']);

$sql = mysql_query("SELECT username FROM users WHERE id = $id");
$row = mysql_fetch_assoc($sql);

$user = htmlspecialchars($row['username']);

?>

<h1>User:<?php echo $user ?></h1>

你能从上面的代码中看出什么威胁吗?我必须对我输出的所有内容使用 htmlspecialchars 吗?我应该使用 is_numeric 还是 intval 来检查获取的是数字?

我只是在构建一个最小的网站。我只是想知道上面的代码是否容易受到sql注入(inject)、xss的攻击?

最佳答案

一般来说mysql_real_escape_string()是首选,但因为它是一个数字,intval()可以。所以是的,从安全角度来看,它看起来不错。

但有一件事,在许多平台上,整数被限制为 32 位,所以如果你想处理大于 ~21 亿的数字,那么它将不起作用。好吧,它无论如何都不会像您期望的那样工作。

这些类型的安全预防措施适用于任何形式的用户输入,包括 cookie(很多人都忘记了)。

关于PHP 安全性、intval 和 htmlspecialchars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217065/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com