目前我在php文件中存储连接数据。但就像最近发生的Facebook一样,那些php文件出现在屏幕上而没有处理,以避免这种情况是他们的其他选择吗?
答案 0 :(得分:1)
将包含连接字符串Eg:connect.php的文件放在webroot文件夹之外。
答案 1 :(得分:1)
如果您担心,请添加一个htaccess异常,使网络无法访问“连接字符串”文件。
RewriteRule /path/to/dbsettings.php /index.php [NC]
我认为这是正确的,虽然在htaccess领域有点生疏。任何大师都可以随意纠正我。
答案 2 :(得分:0)
我们的解决方案是只使用定义的[client]部分保留一个小的my.cnf。 大多数MySQL连接器都有一个“read_defaults_file”指令,允许您直接使用该文件。
然后,您可以将该文件保密,如果用户未获得该信息的授权,则该脚本将在该行失败。
如果您至少使用php5,mysqli::options完全按照我在指定MYSQLI_READ_DEFAULT_FILE时所描述的内容执行。在较旧的php版本中,看起来内置parse_ini_file将完成解析技巧。
此方法具有与Perl,Python和C兼容的优点,因此,如果您的数据库信息发生更改,您只需更新一个文件,并且所有应用程序保持同步。
答案 3 :(得分:0)
将您的私人连接信息存储在文档根文件夹之外的文件中,并使用require_once加载它。
这样,如果发生某些事情,用户就无法转到http://yoursite/db.config.php
并下载您的文件。