让我们假设一些经过验证的数据使用会话参数从一个PHP页面传递到另一个PHP页面。
如何确定在第二个php页面上,这个会话数据仍然是我在第一个php页面上验证的数据?据我所知,会话数据存储在用户计算机上的cookie中。那么,是什么阻止用户向会话cookie中注入损坏的数据呢?
因为在我的场景中,我需要依赖于这样一个事实:传递给第二个页面的数据已经被验证了。
因此,主要问题是如何安全地将验证过的数据从一个页面传递到另一个页面?
事先非常感谢,弗洛
发布于 2016-04-08 09:37:11
会话数据本身是存储服务器端。唯一存储在客户端计算机上的是一个具有唯一标识符的cookie,因此服务器知道要在服务器端加载哪个会话。
用户不能操作存储在会话本身中的数据,因此从这个意义上说,会话是安全的。
当然,cookie本身也可以从用户那里窃取,并被另一个用户使用(一种称为“会话劫持”的做法)。例如,您可以通过将会话锁定到他们的IP地址、浏览器版本等,并使用HTTPS保护他们不被人监听到连接,从而保护您的用户不受此影响。
发布于 2016-04-08 09:36:07
不要存储会话数据是cookies .Store服务器端的会话数据$_SESSION[].For示例
<?php
session_start();
// VALIDATION CODE
$_SESSION['name'] = 'Validation name';
?>现在,在第二页上检查是否设置了此会话。如果它被设置,那么用户将被验证。
<?php
session_start();
if(isset($_SESSION['name'])){
// USER IS VALIDATED
}else{
// UNAUTHORiZED Access
}
?>这将是服务器端,因此不需要一次又一次地验证。谢谢
发布于 2016-04-08 09:40:54
会话数据仅存储在服务器端,因此用户无法编辑会话中的任何内容,因此将保存在第1页上验证的数据将是第2页上相同的数据。
// Page1.php
// Set the session on page 1
session_start();
$_SESSION['myValue'] = 'secure_value';
// Page2.php
// Get the session on page 2
session_start();
$validValue = $_SESSION['myValue'];不要将任何敏感信息存储在cookie中,因为这些信息是存储在客户端的&可以更改!
https://stackoverflow.com/questions/36496229
复制相似问题