Forms 防止从远程站点发布

Forms 防止从远程站点发布,forms,.htaccess,post,security,Forms,.htaccess,Post,Security,我只是想知道你如何防止人们试图愚弄你的脚本&从远程站点发布类似的表单。。例如,尝试在您的字段或类似字段中没有的字段中输入额外值。为了防止这种情况,您应该使用所谓的CSRF令牌来验证请求的真实性。此外,您可以检查HTTP Referer,仅当事务为空、不存在或您的某个地址为空时才允许事务 另请参阅以获取更多信息。为了防止这种情况,您应该使用所谓的CSRF令牌来验证请求的真实性。此外,您可以检查HTTP Referer,仅当事务为空、不存在或您的某个地址为空时才允许事务 有关更多信息,请参见。最好创

我只是想知道你如何防止人们试图愚弄你的脚本&从远程站点发布类似的表单。。例如,尝试在您的字段或类似字段中没有的字段中输入额外值。

为了防止这种情况,您应该使用所谓的CSRF令牌来验证请求的真实性。此外,您可以检查HTTP Referer,仅当事务为空、不存在或您的某个地址为空时才允许事务

另请参阅以获取更多信息。

为了防止这种情况,您应该使用所谓的CSRF令牌来验证请求的真实性。此外,您可以检查HTTP Referer,仅当事务为空、不存在或您的某个地址为空时才允许事务


有关更多信息,请参见。

最好创建一个由用户代理、ip和时间框架生成的md5密钥。然后将其存储在数据库中,并将其填充到隐藏的文本字段中,这样您就可以重新验证该值

您还可以使用$\u SERVER['HTTP\u REFERER']获取请求的来源,并根据站点的url对其进行验证。请记住,这是由用户web浏览器设置的,因此可以对其进行欺骗。下面是可用的$\u服务器变量及其说明的列表。
最好的办法是创建一个由用户代理、ip和时间框架生成的md5密钥。然后将其存储在数据库中,并将其填充到隐藏的文本字段中,这样您就可以重新验证该值

您还可以使用$\u SERVER['HTTP\u REFERER']获取请求的来源,并根据站点的url对其进行验证。请记住,这是由用户web浏览器设置的,因此可以对其进行欺骗。下面是可用的$\u服务器变量及其说明的列表。

请注意,REFERER很容易伪造。是的,我知道这一点,但出于这个原因,我避免使用它。它可以被欺骗,有时也可以是空白的。@Brett@Pete由于HTTP\u引用问题,我添加到了我的答案中。老实说,我永远不会只实现HTTP_REFEFER。这是为了额外的安全而不是基本的安全。只是要知道,REFERER很容易伪造。是的,我知道这一点,但我避免使用它的原因。它可以被欺骗,有时也可以是空白的。@Brett@Pete由于HTTP\u引用问题,我添加到了我的答案中。老实说,我永远不会只实现HTTP_REFEFER。这是为了额外的安全而不是基本的安全。你无法阻止这种情况发生,即使你限制只从你的服务器发布数据,人们也可以使用JS和firebug之类的插件来修改你页面的html并提交修改后的数据。请记住,您决不能信任用户输入,并始终在服务器端验证所有内容。事实上,如果一个人想要提交他们修改过的信息,他们会以某种方式提交。最好的保护是如上所述的令牌和referer检查,但是referer可以被欺骗,并且可以在发布之前从您的站点检索令牌。唯一的绝对解决方案是基于IP.htaccess限制,您可以将脚本完全分开处理表单,然后只允许服务器的ip访问该脚本。即使如此,如上所述,javascript等也可以用来修改表单,您需要进行验证。您无法阻止这种情况发生,即使您限制仅从服务器发布数据,人们也可以使用JS和firebug等插件修改页面的html并提交修改后的数据。请记住,您决不能信任用户输入,并始终在服务器端验证所有内容。事实上,如果一个人想要提交他们修改过的信息,他们会以某种方式提交。最好的保护是如上所述的令牌和referer检查,但是referer可以被欺骗,并且可以在发布之前从您的站点检索令牌。唯一的绝对解决方案是基于IP.htaccess限制,您可以将脚本完全分开处理表单,然后只允许服务器的ip访问该脚本。即使如此,如上所述,javascript等也可以用来修改表单,您需要进行验证。