大家好,我有一个复选框系统,单击一个按钮,即可检查和删除项目列表。我目前正在使用request,它可以完成工作,但是我想知道$ _REQUEST是某种安全风险还是不正确。如果有人有任何建议,我将不胜感激。我应该更改为$ _POST吗?如果是这样,最好的方法是什么?

 foreach ($_REQUEST as $key=>$value) {
    if (substr($key,0,3)==="img") {
      $id = substr($key,3);
if(isset($_REQUEST['Delete'])) {

 $sql = 'SELECT file_name,username FROM images WHERE id=?';
$stmt = $conn->prepare($sql);
$result=$stmt->execute(array($id));

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$image=$row['file_name'];
$user=$row['username'];
$myFile = "$user/images/$image";
unlink($myFile);
}


<input id=\"img".$id."\" name=\"img".$id."\" type=\"checkbox\">

最佳答案

是。您应该将其更改为$ _POST。始终在$ _REQUEST上使用适当的Superglobal。

由于$ _REQUEST中数据组装的顺序,很可能是键值不是您所期望的。这可能导致严重的安全隐患。看到:


What's wrong with using $_REQUEST[]?

关于php - 我应该将$ _REQUEST更改为$ _POST,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2987447/

10-11 22:47
查看更多