是$ _POST真的安全吗?

0 php mysql security jquery post

我在mysql中有一条表消息

id(bigint)      sender(int)    receiver(int)     message(varchar)
1                 42                420           Hi
2                 80                32            Hello
3                 61                32            I love you
Run Code Online (Sandbox Code Playgroud)

我的delete.php代码

if(isset($_POST['id']))mysql_query("Delete from message where id=".$_POST['id']."");
Run Code Online (Sandbox Code Playgroud)

用户使用ajax请求从中删除消息的页面

<div>sender:Romeo
receiver:Juliet
message:I love you</div>
<span id="3">delete</span>//delete message with id 3
<script>
$("span").click(function(){$.post("delete.php",{"id",$("span").attr("id")});
});</script>
Run Code Online (Sandbox Code Playgroud)

现在,据我所知,任何人都可以知道我向哪个页面发出此请求,并可以轻松地使用方法post和action delete.php和delete message开发出一个伪造表单。谁能告诉我如何防止这种情况?

Oli*_*rth 5

您需要验证/验证传入的数据(即当前用户是否有权删除指定的消息?)。您还需要通过使用准备好的语句来防止SQL注入,而不是直接将用户数据插入查询中。