【发布时间】:2012-06-12 10:38:45
【问题描述】:
我在 mysql 中有一条表消息
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 和 action delete.php 轻松开发一个假表单并删除消息。 谁能告诉我如何防止这种情况发生?
【问题讨论】:
-
使用访问令牌或类似的东西?
-
欢迎来到 Stack Overflow!请停止使用古老的
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。相反,您应该了解准备好的语句并使用PDO 或MySQLi。如果你想学习,here is a quite good PDO-related tutorial. -
$_POST并不比$_GET更安全,如果你是这个意思的话 -
使用参数插入数据,而不是直接
标签: php jquery mysql security post