0

所以我一直在创建一个将一些信息写入数据库的表单。它应该集成在 facebook 标签中。到目前为止它工作得很好,但我在检查表单提交时遇到了一些问题。我这样做:

protected function isFormSubmission() {
   return ($_SERVER["REQUEST_METHOD"] == "POST");
}

我的整个表单检查是这样工作的:

public function normForm() {
    if ($this->isFormSubmission()) {
        if ($this->isValidForm()) {
            $this->processForm();
        }
        else {
            $this->printForm();
        }
    }
    else {
        $this->printForm();
    }
}

我的问题是 Facebook 在加载选项卡时立即为 ($_SERVER["REQUEST_METHOD"] == "POST") 返回 TRUE。这意味着函数 isValidForm() 返回 FALSE 并显示所有用户输入错误...当我从 FB 独立加载页面时,它工作正常...

这是该页面的链接:https ://ssl-account.com/sparfuchs.cash-back-info.com/sparfuchs_werden/index.php

为什么 FB 为 ($_SERVER["REQUEST_METHOD"] == "POST") 返回 TRUE,我该如何避免这种情况?

非常感谢,

朱利安

4

1 回答 1

0

嘿...我真的不知道为什么(可能是缓存、结构、外部应用程序策略等)。为避免这种情况,请使用带有令牌的隐藏输入。此外,最好使用一些“反”CSRF((不是完全安全的 CSRF,但它是一种针对的解决方案)

于 2013-08-04T23:13:17.977 回答