Passing and retrieving referer page url
所以我一直在编写一个登录脚本,成功登录后,它会重定向到上一页。我见过几种传递引用 URL 的方法:
使用 $_SERVER['HTTP_REFERER'] - 发送整个引荐来源网址。可能被操纵。所以不值得信任。
$_GET 并将引用者作为 url 参数传递。一点都不安全。
在表单中使用隐藏字段。即使使用 POST 也不那么安全。
所以,由于方法 2 具有最大的灵活性,所以我选择了它。问题是:
如果我在没有域的情况下传递 URL('http://www.domain.com/' 被剥离),然后在重定向时手动添加域,我可以确定生成的 URL 重定向保留在我的域中吗?如果没有,我该怎么做才能确保它不会跑偏?
(假设不存在带有结果url的页面,则重定向到首页)
例如:http://www.domain.com/login.php?ref=category/products/product-1.php
成功登录后,页面被重定向到
我知道应该做些什么来验证referer url参数:
'../' 可以帮助导航到上一个文件夹,如果有,必须将其删除。
在referer url参数中传递的所有标签必须被剥离。
必须删除所有"://"。
小贴士:
如果您不需要重定向到另一个域,则使用域。当然
你必须检查,如果某个域不是在 $ref 中伪造的