php - $_POST 真的安全吗?

标签 php jquery mysql security post

我在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/

相关文章:

php - php中的递归函数在不使用静态的情况下存储结果

php - 如何处理包含引号(等)的用户输入?

php - QL_CALC_FOUND_ROWS pdo?

javascript - 鼠标 ScrollLeft 不适用于 IE、Firefox、Safari

javascript - WordPress javascript 冲突

java - servlet 未响应 ajax 请求

php - MYSQL/Ajax/PHP 生成的下拉列表不通过 'GET' 传递值

javascript - 为棘手的 Jquery 函数添加上下文

php - 拆分 2000 万记录数据库

php - Yii2 更新与 Active Record 多对多关系的联结表