使用GET方法从数据库中删除信息是否安全?

时间:2016-09-29 19:43:25

标签: php mysql database

我正在创建一个网站,用户需要能够上传图片,我希望他们能够删除这些图片。现在,我有一个页面,将显示该用户已上传的所有图像,并且我设置了一个php来从数据库中删除图像。它只需要给出图像的id。我使用GET方法运行它,但我担心用户可以找到我删除php的URL并输入随机ID,删除每个人的图像。有没有办法可以调整我的代码以使其更安全?

<?php
$sql = "SELECT id, userid, name, image FROM images";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        if ($imageUser == $row["userid"]){
            echo "<tr>";
            echo "<th>".$row["userid"]."</th>";
            echo "<th>".$row["name"]."</th>";
            echo "<th><img src='showimage.php?id=".$row["id"]."'></th>";
            echo "<th><a href='imgdelete.php?id=".$row["id"]."'>delete</a></th>";
            echo "</tr>";
        }
    }
} else {
    echo "0 results";
}

?>

delete.php只删除条目WHERE id = $ _ GET ['id'];

1 个答案:

答案 0 :(得分:0)

在RESTful API中,GET请求永远不应修改数据。如果要删除项目,则应使用POST或DELETE请求。