为什么将MySQL凭据放在www目录之外?

Nat*_*ate 5 php mysql security credentials

可能重复:
将核心类放在Web根目录之上 - 好主意还是坏主意?

我一直在阅读,最好的做法是在Web根目录之外(在www文件夹之上)放置MySQL连接凭证(无论是类,定义等等).

为什么是这样?如果凭据在.php文件中,那么通过浏览器访问该文件无关紧要,对吧?

Ray*_*Ray 8

这是一种预防措施.如果有人意外地在您的apache服务器中禁用了php评估或更改.htaccess文件中的apache设置,则该文件可以像任何纯文本文件一样提供.或者,如果您意外忘记了php开始标记,它将像纯文本一样重新获得.并不是说你犯了这么愚蠢的错误,但未来的新手可能会犯错误.

为什么在可以阻止它可能的情况下保留可能的向量?只需听取其他人的建议(或者像我一样,用双脚和一只手射击)并将凭证移到你的docroot之外.


Gor*_*man 5

因为,在某种程度上,Web根目录下的任何内容都不安全.它可以在互联网上使用,这使它本身就不安全.

错误配置的服务器总有可能有一天输出任何PHP文件的内容,而不是将其发送给PHP进行解释.还有太多的人试图以任何方式进入你的数据库...其中一些只是为了好玩.

在任何给定的情况下,您应始终使用最安全的方法.进入是一个很好的习惯.

此外,您永远不应在Web应用程序中使用root密码.创建具有最小权限的特殊用户.

对于PHP,我总是使用.ini文件来存储敏感配置...

<?php
    $config = parse_ini_file('../config.ini');
?>
Run Code Online (Sandbox Code Playgroud)

  • 请详细说明. (2认同)