请不要尝试在客户端cookie中存储“已验证”之类的内容;那令人难以置信的不安全感.用户可以修改cookie中的任何内容 – 因此在这种情况下,我可以在浏览器设置中查找cookie,然后编辑它以将“authenticated”设置为true.然后我会登录,没有用户名或密码.
看看PHP’s session management功能.您应该创建一个会话并存储任何安全的信息服务器端,而不是客户端.
php setcookie?使用会话的示例如下:
session_start();
$secretpassword = 'qwert1234';
php做一个登陆页面。$secretusername = 'foobar';
if ($_SESSION['authenticated'] == true) {
// Go somewhere secure
python cookie、header('Location: secure.php');
} else {
$error = null;
怎么使用cookie登录?if (!empty($_POST)) {
$username = empty($_POST['username']) ? null : $_POST['username'];
$password = empty($_POST['password']) ? null : $_POST['password'];
cookie自动登录?if ($username == $secretusername && $password == $secretpassword) {
$_SESSION['authenticated'] = true;
// Redirect to your secure location
php require、header('Location: secure.php');
return;
} else {
$error = 'Incorrect username or password';
}
}
// Create a login form or something
echo $error;
?>
}
这是一个非常丑陋的例子,但这涵盖了它的内容
>如果用户已经登录,请执行安全操作(当然,secure.php脚本还应验证用户是否已登录)
>如果用户未登录,但他们已提交表单,请检查其详细信息
>如果用户名/密码不正确,请设置错误消息
>如果用户名/密码正确,请将它们发送到安全的地方
>显示错误消息(如果已设置)
>显示登录表单
在发送任何其他输出之前运行session_start();这会在客户端存储会话cookie,该cookie仅在客户端存储标识号.所有其他数据都存储在服务器端,因此用户无法修改.
您可以在此设置几个参数来提高安全性,包括httponly(防止通过javascript访问cookie,帮助抵御XSS攻击)和安全(仅通过SSL传输cookie).如果可能,应启用这些.
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态