我看了这篇文章,但我不明白是否使用了这段代码
我很容易受到会话固定攻击:
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时,会话固定攻击可以附加,例如:
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的网址保存到书签中,并始终使用相同的会话ID访问您的网站。
你可以在这里阅读更多关于会话固定的信息:
http://en.wikipedia.org/wiki/Session_fixation