定位表单处理不同网站上的文件

时间:2010-09-26 13:29:04

标签: php forms

假设我的网站上有<form action="delete_post.php" method="post">...</form>表单:http://mysite.com,文件action/delete_post.php会删除与表单中提供的ID匹配的帖子。

有人可以通过构建一个包含以下表单的网站来尝试删除我网站上的随机帖子:

<form action="http://mysite.com/action/delete_post.php' method="post">...</form>

并传递他想要删除的帖子的id [只是为了恶作剧或对并发网站或其他任何内容造成损害]?

你可以想象有一些人可以针对你的表单处理文件做的事情,那么我是否需要保护我的文件免受那种威胁?

PS:我不隶属于http://mysite.com

1 个答案:

答案 0 :(得分:3)

是的,这种类型的攻击称为跨站点请求伪造(CSRF),许多站点都容易受到攻击。

阻止此攻击的一种常见方法是使用随机生成的表单标记包含隐藏输入(即使像md5(microtime(true))这样就足够了)。在用户的会话中保留最近有效的表单令牌列表,并在使用它们后销毁它们(并且只保留最近的5或10个)。如果用户没有有效的表单令牌,请不要让该操作完成。