【发布时间】:2023-04-06 22:50:01
【问题描述】:
只是想知道这可能是 MySQL 和 PHP 的潜在安全问题:
我在服务器上有一个 connect.php 文件,如果有人使用require(http://myurl.com/connect.php/);,这是否允许他们访问我的数据库?
提前致谢
【问题讨论】:
标签: php mysql security include require
只是想知道这可能是 MySQL 和 PHP 的潜在安全问题:
我在服务器上有一个 connect.php 文件,如果有人使用require(http://myurl.com/connect.php/);,这是否允许他们访问我的数据库?
提前致谢
【问题讨论】:
标签: php mysql security include require
可能不会。如果“某人”从他的服务器执行require(http://myurl.com/connect.php/);(并且启用了通过 http 的包含,请参阅http://www.php.net/manual/en/function.include.php),那么他的服务器连接到您的服务器并获取您的 connect.php 的解释输出 .
【讨论】:
不,但为了提高安全性,最好将敏感文件保存在 Web 根目录之外,以防网络服务器的错误配置破坏 PHP 并将其公开为纯文本。
【讨论】:
不,那将不允许他们连接到您的数据库。当他们通过 Internet 需要您的 connect.php 时,他们会得到此 php 脚本生成的内容作为输出。在您的情况下,您的 php 脚本(connect.php)可能不会产生任何输出(它只是连接到 db 并终止。
【讨论】:
不,PHP 变量无法在客户端访问。例如这样的文件
<?php
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$con 变量将无法公开访问。
【讨论】:
如果您启用了“服务器端包含” - 是的。
阅读allow_url_include指令:http://www.php.net/manual/en/filesystem.configuration.php
【讨论】:
<?php $password = 'test'; ?> 将导致空白页,而不是敏感数据的打印输出。