繁体   English   中英

用于cookie和会话的php安全性

[英]php security for cookies and sessions

关于使用cookie和会话的PHP安全性,这是我迄今为止为防止攻击所做的工作。 我做错了什么/不安全?

的login.php

 if ($username==$dbusername&&$hashed_password==$dbpassword){

setcookie('username[0]',$username,time()+(60*60*24*365));
setcookie('username[1]',$userid,time()+(60*60*24*365));
setcookie('password',$hashed_password,time()+(60*60*24*365));

if($admin=='1') {
setcookie('username[3]',$admin,time()+(60*60*24*365));  
}
$_SESSION['logged-in']=1;

logout.php

    $time = time()-(60*60*24*365);
setcookie('username[0]', '',$time);
setcookie('username[1]', '',$time);
setcookie('username[2]', '',$time);
setcookie('username[3]', '',$time);
setcookie('password', '',$time);
unset($_COOKIE['username']); 
unset($_SESSION['logged-in']);

我在每个页面上调用session_regenerate_id(),是否正确停止会话固定/劫持?

<?php session_start(); session_regenerate_id();

这是我的PHP.ini以及其他方式为会话和cookie提供安全性

    session.use_trans_sid = 0
session.user_only_cookies = 1

欢迎任何示例/改进,因为我通过示例更好地学习。

在更改访问权限时(例如,在登录之后),通常会重新生成会话ID。

密码不应存储在客户端的cookie中 ,甚至不应存储在哈希中。 甚至不需要将它存储在会话中,只使用它来验证登录,并且在将状态写入会话之后,您应该忘记密码。

如果您想要一个非常安全的站点,则需要使用SSL加密的HTTPS连接 否则,攻击者可以窃听发送明文的信息,并使用session-id(或用于验证用户的任何内容)来模拟用户。

请真的请不要将密码存储为cookie。 它(计算机)可能在咖啡馆或其他地方。

这是一个安全问题,一个可以打破。

BTW重新思考并使用一个狡猾的头脑,了解一个人如何闯入你的系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM