在单独的文档中有MySQL安全吗?因为包含函数


Is secure having MySQL in separate document? Because of include function

我学会了(从互联网教程)创建单独的文件,如mysql.php,密码和用户名

$dbserver = "localhost";
$dbname = "";
$dbpass = "";
$dbname = "";
$db = mysql_connect($dbserver, $dblogin, $dbheslo);
mysql_select_db($dbnazev, $db);

当我需要连接mysql时,我会在我的代码中使用包括"mysql.php".

但这是否意味着,互联网上的任何人都可以将这个文件包含到他的脚本中并进入我的数据库?

BTW:我的主机不使用localhost,它使用mysql87.example.com... .

对于你的情况,我可以说这样使用它是安全的(不是我的方式,我喜欢类),这就是为什么:

当你启动你的web服务器有php服务器启动(mod_php, php-fpm, php-cgi或其他)。这个php服务器从文档中排除,将显示给任何其他人,包括它通过web服务器。

这意味着代码
<!-- SOME CODE HERE -->
<?php require('mysql.php'); ?>
<!-- SOME CODE HERE ALSO -->

将被重写为

<!-- SOME CODE HERE -->
<!-- SOME CODE HERE ALSO -->

所以包含这个文件的人将看不到php代码。

这意味着这样使用它是安全的。但是我建议直接访问这类文件。

index . php

<?php
define ('MY_CUSTOM_CONSTANT', 42);
require('mysql.php');
// Other code

mysql.php

<?php
defined('MY_CUSTOM_CONSTANT') or die('You cannot access to this file directly');

在这种情况下,即使他们包含或只是从web调用这个文件-他们只会得到文本消息,代码不会在这种情况下执行

任何人都可以浏览到您的脚本,它将连接到数据库,但脚本将立即结束。假设您没有在mysql.php脚本中混淆表单或cookie变量,那么潜在的攻击者将无法运行查询,因此您的数据库是安全的。