我正在创建一个网站,用户需要能够上传图片,我希望他们能够删除这些图片。现在,我有一个页面,将显示该用户已上传的所有图像,并且我设置了一个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'];
答案 0 :(得分:0)
在RESTful API中,GET请求永远不应修改数据。如果要删除项目,则应使用POST或DELETE请求。