首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中加密mysql密码(或如何克服自动代码扫描器的红旗)

如何在php中加密mysql密码(或如何克服自动代码扫描器的红旗)
EN

Stack Overflow用户
提问于 2009-12-29 22:08:27
回答 8查看 11.3K关注 0票数 2

管理层又罢工了。

我应该如何满足将要读取我的php源代码并标记我的MySQL连接字符串的代码扫描器呢?

  • Linux服务器(即将成为Sun)
  • PHP4.2(不久将成为最新版本)
  • MySQL数据库
  • 防火墙外DMZ中的服务器
  • 只读MySQL帐户
  • 数据库中没有一个字节的非公共信息

我必须在连接字符串中加密我的MySQL密码,除了它将被自动代码测试解决方案标记为红色之外。管理人员被钢笔测试的概念迷住了,而没有理解它。

我非常清楚,与所有其他措施一起加密文件中的密码是不安全的,但是如果我不遵守,我的网站就会被删除。我知道这会损害性能,但这个网站并不那么受欢迎,也不是一个庞大的数据库驱动应用程序。

我的尝试:

代码语言:javascript
复制
//encrypt and decrypt are functions I stole wholesale off of the php.net manual
...
$SuperSecure[0] = array(encrypt("test"), encrypt("test")); //dev
...
$dbcnx = mysql_connect('localhost', decrypt($SuperSecure[0][0]), decrypt($SuperSecure[0][1]));

有更好的办法吗?更重要的是,我是不是错过了什么,而这真的是必要的?

编辑:我不能再和全国人民战斗了。如果我无视这个指令,我的网站就会因为这件事而丢掉我的工作。我只是想尽可能轻松地做到这一点(并且对性能的影响最小)。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-12-29 22:59:08

如果不想将密码直接写入mysql_connect,为什么不编写以下内容:

代码语言:javascript
复制
$username = 'test';
$password = 'test';
mysql_connect('localhost', $username, $password);

在不知道扫描仪有多聪明的情况下,你将无法真正分辨出什么东西是模糊的,足以不升起任何标志。

票数 2
EN

Stack Overflow用户

发布于 2009-12-29 22:28:37

您可以使用rot13混淆(而不是加密)密码。

票数 2
EN

Stack Overflow用户

发布于 2009-12-29 23:05:58

您不能在php.ini文件中定义默认的mysql主机、用户名和密码吗?然后,mysql_connect函数看起来如下:

代码语言:javascript
复制
`mysql_connect();`

除非黑客拥有您的php.ini文件,否则他们将无法访问用户名或密码。即使他们将函数更改为echo。当然,它们可以响应指令,但我认为这已经足够模糊了,因为除了php.ini (服务器文件)之外,在任何源文件中都找不到密码。

如果有人做了phpinfo();,它也会显示在普通的站点中,但是它仍然可以工作。

这个解决方案非常类似于另一个答案提供的ODBC解决方案。它还存在一个缺陷,即如果扫描器检查您的php.ini文件,它将以红色标记代替。

如果您想同时取笑它,我建议在需要连接之前将mysql代码的片段随机放入所有包含的随机文件中。又名

Index.php

代码语言:javascript
复制
Global $password;
$password = "S";

RandomFile.php

代码语言:javascript
复制
Global $password;
$password .= "T";

RandomFile2.php

代码语言:javascript
复制
Global $password;
$password .= "A";

RandomFile3.php

代码语言:javascript
复制
Global $password;
$password .= "CK";

RandomFile4.php

代码语言:javascript
复制
Global $password;
mysql_connect($host, $username, $password."Overflow");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1977237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档