所以我一直在编写一个登录脚本,它在成功登录后重定向到上一页。我见过几个方式来传递引荐网址:传递和检索引用页面url
使用$ _ SERVER [“HTTP_REFERER”] - 将整个引荐URL。可能被操纵。所以不要被信任。
$ _GET并将referer作为url参数传递。根本不安全。
在窗体中使用隐藏字段。即使使用POST也不太安全。
所以,由于方法2允许最大的灵活性,我选择了这一点。问题是: 如果我通过没有域的URL('http://www.domain.com/'被剥离),并且稍后在重定向时手动预先加载域,我能确定生成的URL重定向保留在我的域中吗?如果不是,我该怎么做以确保它不会偏离?
(假定,如果存在与结果的URL没有网页,它会被重定向到主页)
如:http://www.domain.com/login.php?ref=category/products/product-1.php 成功登录后,页面会被重定向到'http://www.domain.com/'.$_GET['ref']
我知道应该怎样做才能验证形式URL参数:
'../'可以帮助导航到前一个文件夹,并且必须删除。
所有在referer url参数中传递的标签必须被剥离。
必须删除所有'://'。
不知道我真的能理解,但会话变量(如数组)来存储URL可以是适当的 - 你可以查找,在session var,前一页并重定向到 – RamRaider
在$ _SESSION中存储这么多的URL会对它产生什么影响?在堆栈表单中使用它可能会有点问题,因为那么我将不得不进行检查以查看他们是否浏览过该页面,或者使用了浏览器上的后退按钮。 – BlackPanther