安全 · 第 3 题,共 12 题
URL 参数 uid 的值为 "5 OR 1=1"。在 PHP 8 中,(int)$uid 返回什么?
有 1 个正确答案。 简单
显示答案
答案
- B 5
解析
(int) 强制转换把字符串转换为整数,并读取开头的数字:"5 OR 1=1" 变为 5,附加的 SQL 部分被丢弃。如果文本不是以数字开头,例如 "abc",转换结果为 0。这使得 (int) 成为在进一步处理 ID 之前一种简单而有效的 清理(Sanitization) 手段。TypeError 只会出现在严格类型的函数参数上,而不会出现在显式强制转换中。不过,在 SQL 查询中,数字同样应作为命名参数传递,例如使用 Connection::PARAM_INT。