AJAX验证正确的用户

时间:2017-05-26 08:48:45

标签: javascript php jquery ajax

我使用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;
    });

更深入地解释我的担忧:任何人都可以看到处理信息的文件,所以他们可以去

  

http://www.website.com/deletepost.php

然后只需应用他们想要的任何ID,这样网址就像

  

http://www.website.com/deletepost.php?id=22

因为在第二页上没有验证,这将有效。

<?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;

因此,如果有人对如何验证这一点有任何想法,那将非常感激。如果有任何不清楚的地方请发表评论,我会填写。

0 个答案:

没有答案