大佬教程收集整理的这篇文章主要介绍了php – 安全灵活的跨域会话,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当然,上面描述的假设情景并不是我公司的实际运作方式,但它是我需要做的一个公平的例子.我们有一个现有的用户数据库,我们有办法对我们任何网站上的任何用户进行身份验证,但我的目标是允许用户无需重新进行身份验证即可从一个站点无缝跨越到另一个站点.这也允许我们将诸如购物车之类的数据无缝地传输到结账站点.
我(简要地)看过OpenID这样的解决方案,但是我需要能够将我们现有的任何解决方案与现有的身份验证方法集成在一起,这种方法并不十分强大.有没有什么好方法可以通过PHP单独做到这一点?
http://whateverblAMMo.com/?sessid=XXYYZZ
在您开始认为任何人都可以捕获该信息之前,请考虑一下您的cookie是如何传输的;假设您没有使用SSL,那么点击网络的人没有太大区别.
这并不意味着它是安全的;例如,用户可能会意外地复制/粘贴地址栏,从而泄露其会话.要限制此曝光,您可以在收到后立即重定向到没有会话ID的页面.
请注意,在会话ID上使用mcrypt()将无济于事,因为它不是问题值的可见性;会话劫持并不关心底层值,只关注它的重现性.
你必须确保id只能使用一次;这可以通过创建一个跟踪使用计数的会话变量来完成:
$_SESSION['extids'] = array(); $ext = md5(uniqid(mt_rand(),truE)); // just a semi random diddy $_SESSION['extids'][$ext] = 1; $link = 'http://othersite/?' . http_build_query('sessid' => session_id() . '-' . $ext);
收到时:
list($sid,$ext) = explode('-',$_GET['sessid']); session_id($sid); session_start(); if (isset($_SESSION['extids'][$ext])) { // okay,make sure it can't be used again unset($_SESSION['extids'][$ext]); }
以上是大佬教程为你收集整理的php – 安全灵活的跨域会话全部内容,希望文章能够帮你解决php – 安全灵活的跨域会话所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。