使用$ _SESSION为根目录保存INCLUDES是否安全?

时间:2019-04-07 20:32:58

标签: php

在我的登录表单中或登录后,使用$_SESSION['path']将绝对路径存储到我的根文件夹,然后在项目的其他位置调用该文件夹是否安全?使用:include_once($_SESSION['path'] . "folder/file.php")

2 个答案:

答案 0 :(得分:0)

通常来说,$_SESSION变量应被视为安全的,因为它作为文件存储在服务器上。这意味着,外部人员无法直接访问它们。

但是,您应该考虑您的托管服务提供商。我的意思是看共享主机和ie之间的区别。 VPS。

在简单的共享主机上,可能存在其他情况(该主机提供程序的其他客户端)可能有权读取其他会话变量。我曾经有过这种情况。我可以扫描每个会话变量,并查看其他网站的会话值。我不记得如何保存数据,但这可能是不允许的。即使看到$_SESSION数据也被认为是不安全的。

在VPS上,使用会话变量和使用数据库数据应该很安全。

但是关于您的路径...如果它是恒定值,那么您应该考虑使用配置文件中定义的consthttps://www.php.net/manual/en/language.oop5.constants.php)而不是变量$_SESSION

答案 1 :(得分:0)

如果会话路径不是特定于用户的,并且您知道如何计算该值,那么为什么不在其他地方应用相同的方法? OTOH如果您将其用作向不同用户提供不同行为的方法,那么我强烈建议您重新考虑您的策略-这不能很好地扩展,也不会导致设计良好的解决方案。可能会导致代码中的LFI漏洞(但仅在存在其他缺陷的情况下)或TOCTOU类型的漏洞。

通常,只要您采取通常的预防措施来防止会话固定和会话劫持攻击,您信任服务器上运行的所有代码并且系统中没有其他漏洞,则可以将会话中存储的数据视为安全的。但这可能不是解决问题的正确方法。