我正在尝试制作一个受到会话劫持保护的loginscript。我的问题是:我该怎么做?我真的不明白我怎么能以安全的方式做到这一点。目前我有这个代码。
if (!empty($_POST["naam"]) && !empty($_POST["wachtwoord"]))
{
$naam = $_POST["naam"];
$wachtwoord = $_POST["wachtwoord"];
$salt = "boterhammetkaas";
$wachtwoord = sha1($wachtwoord.$salt);
$query =$db->prepare("SELECT * FROM opdracht4 WHERE naam = :naam and wachtwoord = :wachtwoord");
$query->bindParam(':naam', $naam, PDO::PARAM_STR);
$query->bindParam(':wachtwoord', $wachtwoord, PDO::PARAM_STR);
$query->execute();
$rij = $query->rowCount();
if($rij == 1)
{
$result = $query->fetch(PDO::FETCH_OBJ);
$status = $result->status;
//setcookie("TestCookie", $status, time()+3600);
//setcookie("ip", $ip, time()+3600);
$_SESSION['status']= $status;
$_SESSION['naam']= $naam;
}
else
{
$antwoord = 'Deze gegevens zijn niet bekend';
}
if (!empty($_SESSION["status"]))
{
if ($_SESSION["status"] == 1)
{
include 'beheerder4.php';
$page = 'overzicht';
}
if ($_SESSION["status"] == 2)
{
include 'projectleider4.php';
$page = 'overzicht';
}
if ($_SESSION["status"] == 3)
{
include 'gebruiker4.php';
$page = 'overzicht';
}
}
谢谢你的帮助。
答案 0 :(得分:0)
只需对服务器使用正确的SSL / TLS加密,并将Cookie保存为安全(仅限https - 第6个参数setcookie
),即可阻止大多数会话劫持尝试。
这将阻止中间人攻击和浏览器扩展,例如firesheep嗅探数据包以获取此信息。
没有什么能阻止某人物理访问计算机。这是不可能的,也不值得保护(大多数人在他们的计算机上有更多的东西,他们会关心丢失或掌握在别人手中而不是他们的社交网络帐户)。