0

我有这个案例:

我有一个名为 form.php 的文件,它只包含带有 POST 方法的简单 HTML 表单,并且该表单的“动作”文件总是在不同的文件上,比如说:action.php。所有这些脚本都存储在一个名为 realdomain.com 的域下(只是一个示例)。

今天,我从另一个域(例如:fakedomain.com)创建了一个假表单,然后我输入了这个:action="http://realdomain.com/action.php"然后点击提交按钮,realdomain.com 上的 action.php 无法区分它是来自 realdomain.com 还是 fakedomain.com让它就这样过去……

然后我有一个想法,在 action.php 上放置一些“过滤器”,仅在引用的域是 realdomain.com 时处理提交的变量$_SERVER['HTTP_REFERER']

但同样,在某些论坛或博客文章中,这种方法根本不可靠,因为 HTTP_REFERER 也可以伪造。

那么,如何验证这一点呢?我的意思是,如何使 action.php 只处理从同一服务器提交的变量?

谢谢

4

1 回答 1

1

你可以在你的表单中实现 CSRF 保护,一个很好的教程: http: //phpmaster.com/preventing-cross-site-request-forgeries/

很抱歉简短的回答,但我在 iPhone 上写。

于 2012-12-22T08:30:16.440 回答