- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<?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/
我通过帖子获得输入值,其中一些可能是ID指的其他内容,而有些则开始于0。在选择具有ID 0的内容或没有值的内容时,是否存在 Intval( ) 在解析失败时返回比 0 更有用的东西?或者我能以某种方式
这对我来说听起来很奇怪: $test_1 = 'string'; $test_2 = '0'; var_dump(intval($test_1)); // Output: int 0 var_dump
这个问题已经有答案了: PHP intval() weird results (5 个回答) 已关闭 8 年前。 在这里,$username是一个用户输入,我正在尝试检查该条目是否是用户名或用户 ID
我正在尝试使用下面的 setInterval 快速循环一系列图像以生成动画。但是,如果我将焦点从浏览器选项卡移开然后再移回来,动画就会闪烁。 我看到了一个关于使用“实时”来捕捉动画的线程,但由于我的线
在 PHP 5 中,每当我将数字作为输入时,我都会使用 intval()。这样,我想确保我没有得到任何字符串或 float 。我输入的数字应该都是整数。但是当我得到数字 >= 2147483647 时
由于 PHP 中的 float 数据类型不准确,并且 MySQL 中的 FLOAT 比 INT 占用更多空间(并且不准确),因此我总是将价格存储为 INT,在存储之前乘以 100,以确保精确到小数点后
假设我有以下字符串: danger13 afno 1 900004 使用 intval() 得到 13,但是,我想获取字符串中的最高整数,即 9000004,我该如何实现? 编辑:字符串有不同的形式,
所以我是新人,所以我不是很好。很抱歉我的英语不好,但我可以帮助你! 这是我的代码 $sql = "INSERT INTO bestellung (userID, name, email, item,
"; echo floatval(substr($Content, 16, 25)).""; echo substr($Content, 27, 37).""; ?> 为什么这段代码返回 71.056
有什么区别: (int) '1'; 和: intval('1'); ? 最佳答案 intval() 接受 second argument ($base) 而 (int) 没有。 int intval(
is_numeric、intval、ctype__digit..你可以信赖它们吗? 还是我必须使用正则表达式? function isNum($str) { return (preg_matc
User: 你能从上面的代码中看出什么威胁吗?我必须对我输出的所有内容使用 htmlspecialchars 吗?我应该使用 is_numeric 还是 intval 来检查获取的是数字? 我只是在
亲爱的大家。 我在 mysql 数据库的某些表中使用整数主键。在从 PHP 脚本输入之前,我正在做一些清理,其中包括 intval($id) 和 $mysqli->real_escape_string
String conversion to numbers 上的 PHP 手册说: The value is given by the initial portion of the string. If
这个问题在这里已经有了答案: Is there any particular difference between intval and casting to int - `(int) X`? (7
背景、概述 早在Sql注入横行的前几年,字符串转化为整数就已经被列为每个web程序必备的操作了。web程序将get或post来的id、整数等值强制经过转化函数转化为整数,过滤掉危险字
我制作了一个小脚本,它从文本文件中给出了一些数据。为了刷新数据,我尝试使用 intvall 并重新加载页面。 setInterval(page_refresh
我想确保在 MySQL 查询中使用 int 值之前已清理并验证该值。 这个项目不使用准备好的语句,因为我意识到这是最好的选择,所以我特别询问关于转换 int、intval() 和 filter_inp
我正在做过滤器脚本。用户写入age_to,我得到最大年龄的用户。问题是我的用户表中只有完整的出生日期。如何获取所有数据?我认为 intval 函数很好,但我不知道如何在 mysql 查询中使用它。 $
intval() = 0 上是否为 NULL 值? $value = NULL $value2 = intval($value) // will be 0? 这是正确的,请让我知道吗? 最佳答案 是的
我是一名优秀的程序员,十分优秀!