代码之家  ›  专栏  ›  技术社区  ›  Samuel

以不同网站上的表单处理文件为目标

  •  1
  • Samuel  · 技术社区  · 14 年前

    假设我有一张表格 <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(仅仅是为了取笑邪恶或者对并发的网站造成损害之类的)?

    你可以想象有人可以做的一大堆事情,比如针对你的表单处理文件,那么我需要保护我的文件不受这种威胁吗?

    附:我不属于 网址:http://mysite.com

    1 回复  |  直到 14 年前
        1
  •  3
  •   MightyE    14 年前

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

    阻止这种攻击的常见方法是使用随机生成的表单令牌(甚至类似于 md5(microtime(true)) 就足够了)。在用户会话中保留最近有效表单令牌的列表,并在使用后销毁它们(仅保留最近的5或10个)。如果用户没有有效的表单标记,不要让该操作完成。