关于 cookie 和会话的 PHP 安全性,这是我迄今为止为防止攻击所做的工作。我做错了什么/不安全?
登录.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;
注销.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
欢迎任何示例/改进,因为我通过示例可以更好地学习。