【问题标题】:php session.use_cookies and session fixation attacksphp session.use_cookies 和会话固定攻击
【发布时间】:2014-12-07 20:18:00
【问题描述】:

我看过this post,但我不明白是否使用此代码
我很容易受到会话固定攻击:

myPage.php

<?php

ini_set("session.use_cookies",0);
ini_set("session.use_only_cookies",0);
ini_set("session.use_trans_sid",1);

session_start();

$_SESSION['myName'] = "myNameIsOk";

if($_SESSION['myName'] === "myNameIsOk" ){
    print_r($_SESSION);
    print_r($_COOKIE);
}

?>

我只使用了这个代码,我没有使用 URL 参数或任何其他东西,所以
此代码是否容易受到 php 会话固定攻击?如果是,如何?我不是 php 专家..
你能发布一个攻击的例子吗?

【问题讨论】:

  • 您正在使用 URL 传递会话 ID,所以不,这不安全。
  • 链接的帖子有什么不清楚的地方?因为你做了与你应该做的完全相反的事情。
  • @PeeHaa 如果我保留默认会话 cookie,会话 ID 是否也会传递给 URL?
  • 从来没有。默认使用会话 cookie。
  • 设置一个会话变量然后立即检查它的值没有任何作用。

标签: php session-cookies session-fixation


【解决方案1】:

使用 url 传递 ID 时可以附加会话固定攻击,例如:

http://unsafe.example.com/?SID=I_WILL_KNOW_THE_SID

如果其他人访问此链接,他可以访问其他人的帐户。

为避免这种情况,您不得接受来自 GET / POST 变量的会话标识符。

不要使用:

ini_set("session.use_trans_sid",1);

但是:

ini_set("session.use_trans_sid",0);

它禁用透明 SID 支持。

与基于 cookie 的会话管理相比,基于 URL 的会话管理具有额外的安全风险。例如,用户可以通过电子邮件将包含活动会话 ID 的 URL 发送给他们的朋友,或者用户可以将包含会话 ID 的 URL 保存到他们的书签并始终使用相同的会话 ID 访问您的站点。

您可以在此处阅读有关会话固定的更多信息:

http://en.wikipedia.org/wiki/Session_fixation

【讨论】:

    猜你喜欢
    • 2011-10-24
    • 2014-02-06
    • 2017-12-18
    • 2010-11-10
    • 2016-05-06
    • 2011-08-26
    • 2020-10-03
    • 2011-02-24
    • 2011-07-02
    相关资源
    最近更新 更多