我使用AJAX删除论坛中的帖子。
代码执行此操作,以便删除图标仅显示会话变量" user"等于数据库中的那个。这非常有效,所以我不相信这里的代码。
然而,从理论上讲,没有人能够阅读javascript代码,转到处理所有内容的文件并删除他们想要的内容吗?
我想解决此问题的方法是使用用户名发送一个额外的变量,并在处理页面上再次检查它。
Ajax代码:
$('#deletePost').click(function() {
var xhttp = new XMLHttpRequest();
var getId = <?php echo $_GET['id']?>
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var replace = confirm("Your post was successfully deleted. Click OK to return to the homepage.");
if (replace == true) {
location.replace('index');
} else {
location.reload();
}
}
}
xhttp.open('GET', 'deletepost.php?id=' + getId, true);
xhttp.send();
return false;
});
更深入地解释我的担忧:任何人都可以看到处理信息的文件,所以他们可以去
然后只需应用他们想要的任何ID,这样网址就像
因为在第二页上没有验证,这将有效。
<?php
if (!isset($_GET['id'])) {
echo 'e';
} else {
$id = intval($GET['id']);
$sql = 'DELETE FROM posts WHERE post_id=' . mysqli_real_escape_string($conn, $id);
$result = mysqli_query($conn, $sql);
if (!$result) {
echo 'Failed to delete your post. Please try again or contact administration.';
}
}
&GT;
因此,如果有人对如何验证这一点有任何想法,那将非常感激。如果有任何不清楚的地方请发表评论,我会填写。