Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php会话数据安全吗?_Php_Security_Session_Cookies - Fatal编程技术网

Php会话数据安全吗?

Php会话数据安全吗?,php,security,session,cookies,Php,Security,Session,Cookies,让我们假设使用会话参数将一些经过验证的数据从一个PHP页面传递到另一个PHP页面 如何确保在第二个php页面上,该会话数据仍然是我在第一个php页面上验证的数据?据我所知,会话数据存储在用户计算机上的cookie中。那么,是什么阻止用户将损坏的数据注入到会话cookie中呢 因为在我的场景中,我需要依赖这样一个事实,即传递到第二个页面的数据已经过验证 因此,主要的问题是如何将验证过的数据从一个页面安全地传递到另一个页面 多谢各位, Flo不将会话数据存储为cookies。将会话数据存储在服务器端

让我们假设使用会话参数将一些经过验证的数据从一个PHP页面传递到另一个PHP页面

如何确保在第二个php页面上,该会话数据仍然是我在第一个php页面上验证的数据?据我所知,会话数据存储在用户计算机上的cookie中。那么,是什么阻止用户将损坏的数据注入到会话cookie中呢

因为在我的场景中,我需要依赖这样一个事实,即传递到第二个页面的数据已经过验证

因此,主要的问题是如何将验证过的数据从一个页面安全地传递到另一个页面

多谢各位,
Flo

不将会话数据存储为cookies。将会话数据存储在服务器端$\U会话[]。例如

<?php
session_start();
// VALIDATION CODE
$_SESSION['name'] = 'Validation name';
?>

现在在第二页检查是否设置了此会话。如果已设置,则验证用户

<?php
session_start();
if(isset($_SESSION['name'])){
 // USER IS VALIDATED
}else{
// UNAUTHORiZED Access
}
?>

这将是服务器端,所以您不需要反复验证。
谢谢

会话数据本身存储在服务器端。客户端计算机上存储的唯一内容是具有唯一标识符的cookie,以便服务器知道在服务器端加载哪个会话

用户无法操作存储在会话本身中的数据,因此从这个意义上讲,会话是安全的

当然,cookie本身可能会从一个用户那里被盗,然后被另一个用户使用(这种做法称为“会话劫持”)。例如,您可以通过将会话锁定到其IP地址、浏览器版本等,并使用HTTPS保护用户免受嗅探连接的人的攻击,从而保护用户不受此影响

据我所知,会话数据存储在用户计算机上的cookie中

事实并非如此

会话数据存储在服务器上,并通过cookie与特定的用户+浏览器关联

通过编辑cookie,用户只能:

  • 访问其他人的cookie(不太可能)
  • 获取新的空会话

请注意,还有一个会话cookie,用于在客户端上存储数据。这是一个没有过期数据的常规cookie,当浏览器关闭时,这些数据将过期。这种类型的cookie通常用于在客户端存储会话id。

会话数据仅存储在服务器端,因此用户无法编辑会话中的任何内容,因此将保存该cookie,以假设第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中存储任何敏感信息,因为这些信息存储在客户端,可以更改

否。会话数据存储在服务器上。您可以将会话数据存储在cookie上,但是,php通常不会这样做,您必须自己实现它。长话短说,会话应该足够安全。cookie中存储的所有内容都是会话id(PHPSESSID)。数据安全地保存在php设置中指定的目录中。您无法避免的是阻止用户更改其PHPSESSID,这也不是问题,因为他不会将信息添加到会话目录中。PHP只是丢弃无效的ID并生成新的ID。为什么每周都会有人问这个奇怪的问题?很抱歉投票失败-这是电话的错误@Dagon-你可以再次点击它来删除它。很抱歉,是电话,你试图打你下来,它被锁定了,但我相信你会在失去代表后幸存下来:-)我知道会话劫持的做法。因为最近我读了一本书《浏览器黑客手册》(对于关注安全的程序员来说是非常好的读物),我想这让我有点偏执。但是会话劫持在这里并不是一个真正的问题,因为用户可能知道数据,但他们不能改变数据。在这篇文章中,非常感谢你,你可能想说:“……你不需要一次又一次地验证”。否则我就不明白了