数据库的PHP安全性

数据库的PHP安全性,php,mysql,security,Php,Mysql,Security,我需要担心MySQL连接的安全问题吗。在我的项目中,我有一个包含所有连接信息和语句的PHP文件,这些信息和语句需要在各种函数中运行,我使用require once或ajax语句从中获取数据 喜欢 <?php require_once '../includes/game_query.php'; game_page_query(1); ?> 它调用文件运行一个查询,并将生成的一些html回送到页面上 由于进行选择的连接信息在PHP文件中可见,因此是否存在可被利

我需要担心MySQL连接的安全问题吗。在我的项目中,我有一个包含所有连接信息和语句的PHP文件,这些信息和语句需要在各种函数中运行,我使用require once或ajax语句从中获取数据

喜欢

<?php
     require_once '../includes/game_query.php';
     game_page_query(1);
 ?>

它调用文件运行一个查询,并将生成的一些html回送到页面上


由于进行选择的连接信息在PHP文件中可见,因此是否存在可被利用/攻击的漏洞?

首先,确保您正在使用或至少转义数据库参数

如果您担心PHP的细节被暴露,那么可以说如果您的PHP解释器关闭,所有内容都可以通过Web服务器看到(正如您的问题评论中提到的);你有两个选择。第一种方法是将包含敏感信息的文件移动到包含web服务器文件的目录之上的一个级别,然后根据需要添加额外的../。另一个选项是通过.htaccess直接限制对文件的访问

如果您不想直接执行PHP文件,但也不想执行我在上一段中描述的操作,那么您可以做的是:

首先,将其放在PHP脚本中,其中包含以下文件:

define('includeAllow', true);
然后将其添加到打开PHP标记下方的文件本身:

if (!defined('includeAllow')) {
    die('Access denied.');
}
请注意,如果在服务器上禁用了PHP,则服务器仍可以公开连接信息

我应该澄清,当PHP解释器打开时,除非有人能够访问服务器上的文件(即通过SSH/FTP),否则无法查看PHP文件的源代码。根据我的经验,我从未见过PHP解释器意外关闭或PHP意外从服务器卸载


而且攻击比这种类型的攻击更频繁。这些是您需要防止的攻击类型。

不要将敏感文件放在文档根目录中,然后。。。如果php在您的服务器上被禁用/中断,那么这些文件很可能会以纯文本形式提供,您将向世界公开所有php代码。如果文件不在文档根目录中,最终用户将无法访问该文件。@MarcB因此,我对该特定安全问题的解决方案是将包含SQL信息的文档移到服务器上的htdocs文件夹之外?这由您决定。php通常不关心文件在哪里。它在文件系统级别工作,几乎完全不受apache自身安全系统的限制。