Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用GET方法从数据库中删除信息是否安全?_Php_Mysql_Database - Fatal编程技术网

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

Php 使用GET方法从数据库中删除信息是否安全?,php,mysql,database,Php,Mysql,Database,我正在创建一个网站,用户需要能够上传图片,我希望他们能够删除这些图片。现在,我有一个页面,将显示该用户上传的所有图像,我有一个php设置从数据库中删除图像。它只需要给出图像的id。我用GET方法实现了它的功能,但我担心用户可能会找到我的delete php的URL,然后放入随机id,删除每个人的图像。有没有办法调整我的代码使其更安全 <?php $sql = "SELECT id, userid, name, image FROM images"; $result = mysqli_que

我正在创建一个网站,用户需要能够上传图片,我希望他们能够删除这些图片。现在,我有一个页面,将显示该用户上传的所有图像,我有一个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";
}

?>


php只是删除id=$\u GET['id']的条目

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

用户登录\密码系统将是常用的方法检查,解释为什么使用post而不是GET。您应该使用post…post也是一种安全的方法…您可以阅读一些关于它的信息:我理解使用post的必要性,但我不确定如何实现它。我还设置了一个活动会话,但问题是每个删除按钮都必须有一个与该图像相关联的唯一标识符,然后在用户单击“删除”时将其发送到删除php。不发布也不安全。我可以用一个POST请求轻松地访问任何url。您必须验证是谁提出请求我如何调整代码以使用POST?我应该将删除链接转换为表单吗?对不起,这是对我问题的有效回答。我应该问正确的问题。我会再发一个更好的问题。不,帖子不是safer@nogad是正确的,post并不安全。这有点晦涩难懂,这是一种虚假的安全感。它在语义上更正确,但这是次要的。。。事实上,您甚至会考虑编写删除内容的代码,或者做任何其他需要验证特定用户特权的代码……没有实际验证这些特权。。。是一面大红旗。