我在mysql中有一个表message
id(bigint) sender(int) receiver(int) message(varchar)
1 42 420 Hi
2 80 32 Hello
3 61 32 I love you
我的delete.php代码
if(isset($_POST['id']))mysql_query("Delete from message where id=".$_POST['id']."");
用户使用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>
据我所知,现在任何人都可以知道我正在向哪个页面发出此请求,并使用方法 post 和操作 delete.php 轻松开发一个假表单并删除消息。 谁能告诉我如何防止这种情况发生?
最佳答案
您需要验证/验证传入的数据(即当前用户是否有权删除指定的消息?)。您还需要使用 prepared statements 来防止 SQL 注入(inject),而不是直接将用户数据插入到查询中。
关于php - $_POST 真的安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10947670/