我正在处理从域到另一个域的表单POSTING值(例如:www.something1.com
到www.something2.com
)。
如何验证请求是从www.something1.com
发布的?或其他地方。
答案 0 :(得分:3)
检查$_SERVER['HTTP_REFERER']
的值。某些浏览器可能会隐藏或欺骗此标头,但大多数浏览器都会正确发送它。
但是请记住,没有办法保证正确的推荐,很容易伪造。
答案 1 :(得分:3)
将我的评论放在答案表单中,因为我不相信任何当前的答案可以解决您的主要问题。您希望验证表单在提交到其他域时显示的源域。
简短回答是否,您无法对其进行验证(至少出于安全原因)。根据{{3}}:
,可用于为您提供第一个域的选项为$_SERVER['HTTP_REFERER']
。
将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。
问题在于客户端提交表单,发送到“server2”的所有数据可以/将被恶意用户修改以绕过任何安全/验证有到位。唯一的另一种选择是将一些需要提交的验证与表单一起提交,但是使其接近有效的唯一方法是更改它,并经常更改它。 (也就是说,每一分钟?)。但无论你添加什么,都需要提交 - 恶意用户可以完全控制发送的所有内容。
答案 2 :(得分:0)
您可以将网址作为参数“http://site.com/page2.php?prevUrl=”。urlencode(“http://site.com/page1.php”)传递。
希望有所帮助