我的小程序基于PHP,MySql,Jquery和Ajax,提供来自数据库的登录和显示数据。 Login.html - > check-login.php - > success-login.php< - >显示-data.php
我的问题:
$_SESSION
,有人可能会在远程计算机上的php文件中添加$_SESSION['mytime']
并伪装成授权用户吗?我的代码如下:
login.html(call check-login.php)
check-login.php
// connect database by PDO
// if username and password (in md5) are matched
session_start();
$_SESSION['mytime'] = time();
header('location:success-login.php');
成功-的login.php
session_start();
if(!isset($_SESSION['mytime'])) {
header('location:login.html');
exit;
}
//use Jquery and Ajax to fetch data from database in show-data.php
显示-data.php
session_start();
if(!isset($_SESSION['mytime'])) {
header('location:login.html');
exit;
}
//PDO database operation and return data in JSON
答案 0 :(得分:0)
$_SESSION
变量。答案 1 :(得分:0)
在开发此类应用程序时,您应该考虑很多事情。根据您从数据库显示的数据的敏感性,您可能希望开始使用HTTPS连接而不是纯HTTP。这就是我通常会采取的措施来提高安全性:
关于您的其他问题:
$_SESSION
存储在服务器端。它只能由在该服务器上运行的脚本或手动更改(如果您手动编辑$_SESSION
文件)format
究竟是什么意思(是解析还是造型)。如果我响应AJAX请求,我会格式化数据并输出仅需要显示的数据。例如,如果我显示有关用户的信息,我会输出他的username
,first_name
,last_name
,email
,但不会输出他的password
,{ {1}},password_salt
以及任何其他敏感数据。 您提供给我们的代码是我不会使用的代码,因为它不会检查有效用户。如果用户具有bank_account
变量的会话,则假定用户有效。我会在会话中存储mytime
和user_id
(加密),然后检查这些值是否在数据库中匹配。这样,如果用户被删除或更改了他的密码,他的所有其他会话将变为无效。