我为我的web项目构建了一个基本的php身份验证系统。我只是想问它是否安全,因为我只是担心会话劫持和sql注入问题。代码如下。
用户表单字段包含电子邮件的user_email文件名和密码的密码字段名
PHP user validation code
<?php
session_start();
// // check if user session is set or not
if(isset($_SESSION['user'])){
// session is set redirect to user home
he
所以我有几种不同的方法来尝试和防止会话劫持,一种是使用HTTP_USER_AGENT并检测它在会话期间是否发生了变化。这样做的问题是,如果用户使用移动电话访问网站,并从移动视图更改为桌面视图,则用户代理将更改,并且用户会收到以下错误:
if (isset($_SESSION['HTTP_USER_AGENT']))
{
if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT']))
{
echo "Error: security i
等线程和Chris Shiflett等人建议检查用户代理( $_SESSION['HTTP_USER_AGENT'] ),以帮助检查会话有效性。一些甚至推荐这样的东西:
<?php
$string = $_SERVER['HTTP_USER_AGENT'];
$string .= 'SHIFLETT';
/* Add any other data that is consistent */
$fingerprint = md5($string);
?>
然而,说:“浏览器代理的世界与用户的世界相比是微不足道的,所以每个用户都不