php - 在 PHP 代码中隐藏数据库登录信息

标签 php sql database security .htaccess

我是网络编程的初学者。我正在尝试创建一个从 SQL 数据库读取数据的简单网站。起初我只是写了我的数据库密码并直接登录到 php 代码中:

<?php
$username = "login";
$password = "pw";
mysql_connect("server", $username, $password);
...
?>

这显然不是一个好主意!那么什么是(更)“安全”的方式来做到这一点?我读到有关将 php 代码放入一个单独的文件中,这意味着不进入网站的主要 php 文档,然后限制对该文件的访问。也许通过 .htaccess 文件。这是要走的路吗?

最佳答案

config.php 文件和 .htaccess 是一个经典/好的方法。这是通常使用 CMS 或框架完成的方式。

正如 JohnP 所指出的,您还可以将 config.php 存储在公共(public)目录之外,这意味着它不能可以通过 HTTP 访问。这对安全性来说只是稍微好一点(如果您的 .htaccess 没有出错,就没有更多的风险)。

文件结构示例:

  • config/ -> 配置文件
  • lib/ -> 库和实用程序 PHP 文件
  • public/ -> 所有你公开的页面/文件/图片...

这样,http://www.your-site.com/指向 public/,因此无法访问配置。但是这个解决方案意味着您可以更改根 Web 目录(或者它已经是那样了)。

最后,你必须记住设置这个文件只有 Apache 用户可读和可写,而不是所有人(unix 文件访问权限),这样如果有人通过另一个用户访问你的服务器,他无法读取文件。

关于php - 在 PHP 代码中隐藏数据库登录信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5962450/

相关文章:

PHP JSON API - 检测返回值的数据类型

mysql - 如何进行 MySQL 查询以向前和向后搜索术语?

sql - 如何使用静态数据填充 sql 中缺失的行?

在线上传网站时,PHP 时区变得困惑

database - DBMS Oracle 中的约束

php - 如何使用数据库 laravel 背包中的数据更改标题

php - 如何在常规 PHP/HTML 页面和 Angular 页面之间共享 PHP session ?

php - 单元测试 Yii 行为

sql - 有没有办法可以在事务期间关闭 DELETE CASCADE 然后再次打开?

php - 如何正确使用 PDO 对象进行参数化 SELECT 查询