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


Is it safe to use GET method for deleting information from a database?

我正在创建一个网站,用户需要能够上传图像,我希望他们能够删除这些图像。现在,我有一个页面,它将显示该用户上传的所有图像,我有一个php设置,用于从数据库中删除图像。它只需要给定图像的id。我让它与GET方法一起工作,但我担心用户可以找到我的delete 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'];

在RESTful API中,GET请求不应该修改数据。如果要删除项,应该使用POST或delete请求。