【发布时间】:2017-05-27 12:43:14
【问题描述】:
如何保护我的 delete.php 文件
$id = (int) $_GET['id'];
$delete = $connection->prepare("DELETE FROM `articles` WHERE `id` = :id");
$delete->execute(['id' => $id]);
if($delete->rowCount() > 0){
echo 'SUCCESS';
}else{
echo 'ERROR';
}
假设我登录了我的网站面板并且我的会话正在进行
$_SESSION['user_id'] = My_ID;
当我登录时,一些黑客在我的电子邮件中发送了一个链接
<img src="http://my.website.com/panel/articles/delete.php?id=353">
该链接将删除我的文章或最糟糕的是我网站的完整主要部分,这是非常危险的。那么我怎样才能保护我的删除链接呢
【问题讨论】:
-
生成标识电子邮件和用户 ID 的临时哈希字符串。将其放入数据库中。收到删除请求后,检查数据库中是否存在字符串。
-
看来您正在从您的 ajax cal 调用 delete.php 从 ajax 发送一个带有 id 的令牌。验证令牌和 id 然后应用删除操作
-
安全警告:md5(uniqid(rand(), TRUE)) 不是生成随机数的安全方法。
-
你可以随时使用 RandomLib github.com/ircmaxell/RandomLib
标签: php mysql security hyperlink content-management-system