如何保护跨站点表单提交

时间:2011-07-16 11:49:08

标签: webforms security form-submit

有谁知道如何保护跨网站表单提交?例如,如果我有注册页面,用户必须输入自己的电子邮件和密码,我不希望任何人从其他网站向myweb网站提交电子邮件和密码值。

3 个答案:

答案 0 :(得分:0)

如果您的意思是您不希望人们能够将托管在另一个网站上的表单中的数据提交到您的服务器,那么一种方法就是检查引用者HTTP标头,但这不会起作用。时间,因为它依赖于浏览器发送的数据,很容易伪造。

您最终会对关闭HTTP Referrer发送的人造成麻烦。

另一种使其工作的方法可能是发送一个<input type="hidden" value="dsahdbashdbhas[keyboard mash]" />,它将根据用户的IP地址生成一个值(当用户请求页面时)。然后,当您处理表单时,您可以检查此值,如果不正确,您可以删除该请求。

如果这是为了防止自动填写表格,那么你应该使用CAPTCHA

答案 1 :(得分:0)

在用户会话中存储秘密随机生成的密钥。当用户打开带有表单的页面时,将表单隐藏在该表单中。在提交表单后验证接收的数据是否匹配。

答案 2 :(得分:0)

在网络安全领域,这是一个称为跨站点请求伪造(CSRF)的漏洞。您应该确保阅读OWASP上的Cross-Site Request Forgery Prevention Cheat-Sheet和其他页面