Javascript AJAX验证正确的用户
我正在使用AJAX删除论坛上的帖子 代码这样做是为了只有当会话变量“user”等于数据库中的变量时,删除图标才会显示。这是完美的,所以我相信这里不需要包含代码 然而,从理论上讲,难道任何人都不能读取javascript代码,转到处理所有内容的文件并删除他们想要的任何内容吗 我解决这个问题的想法是发送一个带有用户名的附加变量,并在处理页面上再次检查它 Ajax代码:Javascript AJAX验证正确的用户,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在使用AJAX删除论坛上的帖子 代码这样做是为了只有当会话变量“user”等于数据库中的变量时,删除图标才会显示。这是完美的,所以我相信这里不需要包含代码 然而,从理论上讲,难道任何人都不能读取javascript代码,转到处理所有内容的文件并删除他们想要的任何内容吗 我解决这个问题的想法是发送一个带有用户名的附加变量,并在处理页面上再次检查它 Ajax代码: $('#deletePost').click(function() { var xhttp = new XM
$('#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;
});
$('#deletePost')。单击(函数(){
var xhttp=newXMLHttpRequest();
var getId=
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
var replace=confirm(“您的帖子已成功删除。单击“确定”返回主页。”);
if(replace==true){
位置。替换(“索引”);
}否则{
location.reload();
}
}
}
open('GET','deletepost.php?id='+getId,true);
xhttp.send();
返回false;
});
更深入地解释我的担忧:任何人都可以看到处理信息的文件,因此他们可以直接访问
然后只要应用他们想要的任何id,url就会变成
因为第二页没有验证,所以这是可行的
<?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.';
}
}
因此,如果有人对如何验证这一点有任何想法,我们将不胜感激。如果有任何不清楚的地方,请发表评论,我会填写。如果您正在使用会话,请检查目标php页面上是否也存在该会话。使用(post)方法并检查帖子是否为当前用户帖子,然后删除其他内容。不要delete@LelioFaieta真不敢相信我没想到,感谢you@Saetre您需要检查两件事来限定任何要删除的HTTP请求。1-请求来自有效用户。您可以检查他/她的会话信息。2-如果发现用户是有效用户,则需要检查他/她是否有足够的权限删除其请求的实体。