标头重定向和维护会话以及安全性

时间:2011-01-04 16:38:27

标签: php security session-variables

我正在开发一个购物车,例如使用Captcha验证用户是否为人。收到错误提交后,用户将被重定向到原始验证页面

<?php header('Location:https://mysite.com/cart.php?PHPSESSID=mysessionid'); ?>

不幸的是,如果我没有在URL中发送会话ID,我会松开页面中的所有会话数据,并且调用session_start()会启动一个新会话。似乎在PHP中这是实现此目的的唯一方法。我觉得这个方法有点不安全,因为任何用户都可以通过使用URL并使用他们获得的会话ID来劫持会话。这可以通过用户离开我的网站并将上述URL标记为他们浏览下一个站点的引用页面来完成。有没有更好的方法来隐藏这个变量?允许这些信息在公开场合以及劫持会话的所有相同空间似乎是一个非常大的风险。谢谢你的阅读!

1 个答案:

答案 0 :(得分:2)

通常,PHP会话从浏览器发送的HTTP cookie和初始请求重新初始化。

在本质上,只要会话cookie保持有效并被发送,用户就可以在任何随机页面上自由地引导浏览器,并在返回时重新初始化会话。

如果会话没有重新初始化,那么一个好的起点就是找出“为什么?”。