假设一些经验证的数据使用会话参数从一个PHP页面传递到另一个页面。
我怎么能确定在第二个php页面上,这个会话数据仍然是我在第一个php页面上验证的数据?根据我的理解,会话数据存储在用户计算机上的cookie中。那么是什么阻止用户将损坏的数据注入该会话cookie?
因为在我的场景中,我需要依赖这样一个事实,即传递给第二页的数据已经过验证。
因此,主要问题是如何将验证数据从一个页面安全地传递到另一个页面?
非常感谢, FLO
答案 0 :(得分:4)
会话数据本身存储在服务器端。存储在客户端计算机上的唯一内容是具有唯一标识符的cookie,因此服务器知道要在服务器端加载哪个会话。
用户无法操纵会话本身存储的数据,因此从这个意义上讲,会话是安全的。
当然,cookie本身可能会被用户窃取并被其他用户使用(这种做法称为“会话劫持”)。您可以通过例如将会话锁定到其IP地址,浏览器版本等,并使用HTTPS来保护用户免受嗅探连接的人的影响,从而保护您的用户。
答案 1 :(得分:1)
不存储会话数据是cookie。存储服务器端的会话数据$ _SESSION []。例如
<?php
session_start();
// VALIDATION CODE
$_SESSION['name'] = 'Validation name';
?>
现在在第二页检查是否设置了此会话。如果已设置,则验证用户
<?php
session_start();
if(isset($_SESSION['name'])){
// USER IS VALIDATED
}else{
// UNAUTHORiZED Access
}
?>
这将是服务器端,因此您无需一次又一次地进行验证。 感谢
答案 2 :(得分:1)
会话数据仅存储在服务器端,因此用户无法在会话中编辑任何内容,因此将保存以假设第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中,因为这些信息存储在客户端和可以改变!
答案 3 :(得分:0)
根据我的理解,会话数据存储在用户计算机上的cookie中。
不是。
会话数据存储在服务器上,并通过cookie与特定用户+浏览器相关联。
通过编辑cookie,用户只能:
请注意,还有一个会话cookie ,它是将数据存储在客户端上的地方。这是一个常规cookie,没有到期数据,当浏览器关闭时将会过期。这种类型的cookie通常用于在客户端上存储会话ID。