gpt4 book ai didi

php - PHP 访问文档根目录以上的文件是否安全?

转载 作者:行者123 更新时间:2023-12-05 03:14:30 26 4
gpt4 key购买 nike

我见过很多这样的问题,但我遇到了一些看起来很简单的问题,我想知道它是否安全。

据我了解,我的文档根目录是主机 (rochen) 上名为 public_html 的文件夹。我希望第一次实现数据库,需要保护用户和密码等。根据我的阅读,此信息需要在文档根目录之外。

一个非常简单的例子是创建一个与 public_html 相同级别的 ini 文件,并在我的 PHP 中使用这一行来访问它(假设我的 php 文件直接在 public_html):

$config = parse_ini_file('../config.ini');

我从 DOS 中了解到的点点是古老的“向上一级”技巧。

然后数据库将像这样使用 ini 文件内容:

$connection = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);

我的包含敏感信息的 ini 文件位于文档根目录之上,据我所知,它是安全的。与我读过的许多其他答案相比,这似乎是一种更简单的实现结果的方法。这是正确的还是我遗漏了一些巨大的安全漏洞?

最佳答案

One very simple example is to create an ini file at the same level as the public_html and use this line in my PHP to access it (assuming my php file is directly below public_html).

这种想法本身并不能保证任何安全。

如果您的任何脚本需要读取该文件,则该文件可能存在风险。所以关键不是想出详细的文件系统方案来存储配置文件,而是了解如何通过几个简单的步骤有效地阻止对文件的访问。

例如,这是你的配置文件:

$config = parse_ini_file('../config.ini');

您使用 PHP 并担心被窥视,对吗?好吧,如果这是一个自定义的 PHP 代码库,并且您可以随意命名该文件,那么只需将它设为 .ini.php 文件,如下所示:

$config = parse_ini_file('../lembasts_config.ini.php');

关键思想是大多数黑客尝试都来自试图访问常用命名文件的恶意机器人。所以 config.ini 是一些脚本小子已经编码寻找的东西。他们不知道 lembasts_config.ini 是什么,更不用说 lembasts_config.ini.php 了。因此,使配置名称符合您的需求将有助于“隐藏”您的配置。

那么 lembasts_config.ini.php.php 版本到底是干什么用的?好吧,它的名字叫 PHP,因此您可以在文件本身中执行类似的操作:

;<?php
;die();
;/*

username="[your username]"
password="[your password]"
dbname="[your dbname]"

;*/

;?>

想法是 parse_ini_file 将按预期解析 ini 值。但是由于 .php 扩展名,如果有人试图在网络浏览器中打开它,die(); 将运行。

网络安全的关键很简单:绝大多数入侵来自寻找常见漏洞的自动化脚本。使用像这样的简单技术堵住常见漏洞,让您的代码库更加安全。

关于php - PHP 访问文档根目录以上的文件是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24254687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com