使用 include() 连接到服务器和数据库是否安全?

Is it secure to use include() to connect to server and database?

使用带有连接参数的 PHP 文件并将该文件包含到页面是否安全?

示例:

include("connect.php");

connect.php:

$con=mysqli_connect('localhost','root','','database')  
or  
die(mysqli_connect_error($con)."- In line: ".__LINE__);

mysqli_set_charset($con,'utf8');

是的,因为包含发生在服务器端。你应该查查有关服务器端编程和客户端编程的资料!

此外 MySQL 函数已正式 弃用 并且应使用 MySQLi 或 PDO 代替!!!

是的,这很好,但如果您使用 require() 可能会更好,这样如果由于任何原因(包括连接信息)失败,代码执行将停止。 include() 即使命令没有成功也会继续执行脚本,这会导致错误信息and/or 只有在连接成功时才需要的信息才会被暴露(一般不推荐)。

为了更加安全,您可以将连接信息文件移出 public 网络根目录(例如,如果网络根目录为 /home/data/files,则将其移至 /home/data,然后包括 /home/data/connect.php 或 ../connect.php - 如果您的虚拟主机允许这样做)。这意味着无法通过 HTTP 访问它。