【发布时间】:2016-02-21 15:42:41
【问题描述】:
所以有人告诉我这种方法不安全,因为人们可以伪造会话并使用它的变量。
这是我脚本的一小部分:
<div class="panel-body text-center">
<?php
if(!isset($_SESSION['steamid'])) {
steamlogin(); //login button
}
else
{
include ('steamauth/userInfo.php');
include ('db.php');
$mysqli = mysqli_query($db,"UPDATE `users_steam` SET name='".$steamprofile['personaname']."', avatar='".$steamprofile['avatarfull']."' lastseen='".time()."' WHERE steamid='".$_SESSION["steamid"]."'");
echo "<img class='img-responsive center-block rounded' src='".$steamprofile['avatarmedium']."' title='' alt='' /></img><br>"; // Display their avatar!
echo "<span>".$steamprofile['personaname']."</span>";
logoutbutton();
}
?>
</div>
如果用户未登录,则会显示登录按钮。如果相反,则显示他的头像和姓名,并更新我的数据库。
$_SESSION['steamid'] 变量包含用户 STEAM ID,用户通过 Steam 登录时会检索到该 ID。除了 $_SESSION 变量之外,还有其他方法可以包含此 ID 并在我的网站中进一步使用它吗?
谢谢
【问题讨论】:
-
So I've been told that this method is not secure- 请引用 - 我的银行使用会话,所以如果他们如此不安全,我想知道是否向他们投诉.....但我希望有证据支持如果我这样做了就索赔 -
我听说过 session_regenerate() 会为 session 提供一个新的 ID,但我不知道这是否是我问题的答案。
-
是的,您可以更改引用服务器上某些数据的会话 id,但您需要知道 php 设置的 cookie 的确切值。但是你不能改变'$_SESSION[]'的值
-
顺便说一句,没有其他好的方法可以为特定的客户端服务器端存储数据,所以使用会话