我的所有数据库凭据都包含在我想放在我的 webroot 文件之外的包含文件中。
但是,我的共享托管计划不允许我将文件放在 webroot 之外。我是否必须考虑以某种方式加密我的文件以确保我的凭据安全?
我读过一种方法来生成一种假的 404 页面,但这对我来说听起来一点也不安全。
我还采取了创建只读用户帐户的步骤,这样如果我的帐户遭到入侵,那么至少不会覆盖或删除任何内容,但我显然希望尽可能安全。
你不能
最好的办法是创建将由托管服务解释的 php 文件。
<?php
$DB_USER = 'your_user';
$DB_PASS = 'your_pass';
$DB_INSTANCe= 'your_instance';
当有人从网络浏览器访问您的文件时,他将看不到任何东西。当你需要你的文件时,只需包含它。
您还可以添加一些 .htaccess(可能),这样使用 Web 浏览器的任何人都无法访问您的文件。
可悲的是,与您对同一物理主机具有读取访问权限的人将能够访问此文件,并且没有办法阻止这种情况。
如果服务器正在运行 apache 并且您可以覆盖指令,那么这可以通过使用以下行在 webroot 中创建一个 .htaccess 文件来实现,请务必将 <FILENAME>(包括 <>)替换为名称您要拒绝访问的文件的名称。
#Deny access to the .htaccess file
<Files ~ "^\.htaccess">
Order allow,deny
Deny from all
</Files>
#Deny the database file
<Files ~ "^\<FILENAME>$">
Order allow,deny
Deny from all
</Files>