使用内爆与数组进行安全查询

Cyc*_*one 3 php arrays security pdo

我使用的PDO,而我$_POST['arraywithdata']是提起阵列数字值.我认为这不够安全,我只是不确定并防止自己陷入黑客攻击.

这是我的代码:

$arr = $_POST['arraywithdata'];
$SQL->query("UPDATE `data_s` SET `set` = 1 WHERE `id` IN " . implode(", ", $arr));
Run Code Online (Sandbox Code Playgroud)

如您所见,我不会检查int中的邮政编码或其他内容.

我应该使用类似的东西:

implode(", ", (int) $arr)
Run Code Online (Sandbox Code Playgroud)

我猜上面的代码不起作用,因为数组不能是整数.

Gum*_*mbo 9

您需要转换数组的每个值,而不是数组本身.您可以array_map这样做:

implode(", ", array_map('intval', $arr))
Run Code Online (Sandbox Code Playgroud)

这里array_map将应用于intval每个值$arr并返回带有返回值的新数组.

但是当您使用PDO时,您可能也对PDO解决方案感兴趣.