所以我一直在编写一个登录脚本,成功登录后,重定向到上一页。我已经看到了几种传递referer URL的方法:
使用$ _SERVER ['HTTP_REFERER'] - 发送整个引用网址。可能被操纵。所以不要被信任。
$ _ GET并将referer作为url参数传递。根本不安全。
在表单中使用隐藏字段。即使使用POST也不太安全。
因此,由于方法2允许最大的灵活性,我选择它。问题是: 如果我在没有域名的情况下传递了网址(“http://www.domain.com/”被剥离),并且稍后在重定向时手动添加域名,我可以确定生成的网址重定向是否保留在我的域中?如果没有,我该怎么做以确保它不会偏离?
(假设如果没有包含结果网址的网页,则会将其重定向到主页)
例如: http://www.domain.com/login.php?ref=category/products/product-1.php
成功登录后,该页面将重定向到'http://www.domain.com/'.$_GET['ref']
我应该知道如何验证referer url参数:
'../'可以帮助导航到上一个文件夹,如果有的话,必须删除。
必须剥离在referer url参数中传递的所有标记。
必须删除所有'://'。
答案 0 :(得分:1)
几点提示: