我正在尝试整理一个PHP登录脚本,并注意到以纯文本格式存储我的数据库密码并不安全。我的connect.php文件安全吗?我如何在下面的connect.php文件中使用salt加密?
感谢并抱歉提出一个基本问题,我对PHP仍然很陌生。
<?php
if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
/* Database config */
$db_host = 'localhost';
$db_user = 'randomuser';
$db_pass = '123456';
$db_database = 'randomdatabase';
/* End config */
$link = mysql_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB connection');
mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");
?>
答案 0 :(得分:2)
我的connect.php文件是否安全?
在某种程度上 - 是的。
我如何在下面的connect.php文件中使用salt加密?
你不能对你的connect.php使用任何“盐加密”。请保持原样。
答案 1 :(得分:0)
首先,我建议学习一些关于加密,散列和盐析的文章,以便对它的作用和不做的事情有一个总体的了解。
维基百科并不知道这一切,但文章中涵盖了最相关的部分。
php脚本的密码通常不加密。最佳做法是将其存储在单独的配置文件(p.e.config.php)中。这样就由系统管理员来确保这一点。这不仅有助于您的安全性,这样的外部配置文件使得移植应用程序变得更加容易。大多数主要的php应用程序,包括论坛引擎,CMS,日历或其他任何东西,都使用这种架构。
答案 2 :(得分:0)
这很安全 这取决于您的托管服务提供商及其设置 对于安全项目,我建议至少使用VDS。
答案 3 :(得分:0)
也许是一个额外的答案。是的,据我所知,没有其他方法来存储数据库连接凭据,而不是以明文形式存储它。
也许您可以使用加密方案加密您的凭据,但如果攻击者可以访问您的文件(以及您的加密方案),他们就可以轻松解密您的加密凭据。
只要您保持安全,connect.php
就是安全的。一些建议:
connect.php
外部网络服务器的根目录(您仍可以将其包含在任何其他脚本中)以防止从HTTP进行访问php
,不要将文件重命名为网络服务器作为可查看文本文件提供的任何其他扩展程序connect.php
规则保护.htaccess
答案 4 :(得分:0)
我的connect.php文件是否安全?
您可能希望使用ioncube加密您的connect.php ... http://www.ioncube.com/ ...仍然可以保护它。
我喜欢在我的.htaccess中添加这样的内容:
<files connect.php>
order allow,deny
deny from all
</files>