[讨论]关于PHP下MYSQL明文密码保护的一点设想

数据库服务和管理,MySQL/PostgreSQL/Oracle/Sybase 等
回复
sanz
帖子: 1008
注册时间: 2006-09-29 5:11
送出感谢: 11 次
接收感谢: 5 次

[讨论]关于PHP下MYSQL明文密码保护的一点设想

#1

帖子 sanz » 2007-06-29 14:57

首先:前提是我讨论的是本地服务器,UBUNTU+NANOWEB服务器+MYSQL+PHP,别人没有UBUNTU的root口令,但是有普通user帐号或者能随时用你的计算机。

PHP+MYSQL用了将近N年了,一个问题一直困扰我,就是PHP数据库连接的明文口令安全。开始是因为服务器装在WINDOWS下,现在在LINUX下情况好点了,但还是不安全。因为如果别人来用我的计算机,很容易能看到我的MYSQL密码,很多数据库下的敏感数据就危险了。这几天,我考虑了一个方案,不知道可行不可行。

1、把MYSQL口令存放在一个php文件中(如mypass.php),文件放在很深的目录中,如“/a/b/c/d/"下。该文件的内容为<META HTTP-EQUIV=Refresh CONTENT='0; URL="null.php'>\n(分行)<!--password>

2、WEB服务器设置一个ALIAS目录指向'/a/b/c/d/'这个目录,把配置文件中目录索引文件加上"mypass.php"。这样在php页面文件中引用地址为"localhost/alias/". 然后用fgets读取文件内容,分离出文件中的password.

3、把所有相关目录权限设为不能ls,然后把服务器设置文件权限设为600。WWW下文件权限为只读,目录权限为只读。

以上方案不知道可行否。这样通过查看php源码无法看出来含密码明文的文件的路径和名称,只要系统root口令不泄露。

帮我想想看还有没有什么漏洞呵呵。。。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
sqlfm
帖子: 356
注册时间: 2007-02-15 6:26
送出感谢: 0
接收感谢: 1 次

#2

帖子 sqlfm » 2007-06-29 15:21

是否也可这样:
1. passwd.php readonly by www

2. passwd.php内容
<?php
function connect_mysql()
{
return mysql_connect('host','user','password');
}
?>
3. 上面的页面,通过web无法显示。
4. 但是,apache 的www用户仍然可以读到你的密码。
5. 一般,web的MYSQL用户权限越小越安全。以防不测。

楼下继续。。。
2007:琉璃地,旃檀林。心心作。念念是。
sanz
帖子: 1008
注册时间: 2006-09-29 5:11
送出感谢: 11 次
接收感谢: 5 次

#3

帖子 sanz » 2007-06-29 16:27

楼上的是个方法。我对linux的文件权限不太熟。但是好像别人可以随便写个php就可以读出来吧?
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
sqlfm
帖子: 356
注册时间: 2007-02-15 6:26
送出感谢: 0
接收感谢: 1 次

#4

帖子 sqlfm » 2007-06-29 17:46

是阿。我是说了:2楼第4点。

但是1楼的第2条用ALIAS不是一样被读取的吗?

我对Linux文件系统更不懂。
2007:琉璃地,旃檀林。心心作。念念是。
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#5

帖子 bones7456 » 2007-06-29 18:04

恩,继续讨论,关注中...
关注我的blog: ε==3
sanz
帖子: 1008
注册时间: 2006-09-29 5:11
送出感谢: 11 次
接收感谢: 5 次

#6

帖子 sanz » 2007-06-30 8:45

sqlfm 写了:是阿。我是说了:2楼第4点。

但是1楼的第2条用ALIAS不是一样被读取的吗?

我对Linux文件系统更不懂。
是查不多。但是你那个简单多了。

我又把所有的www目录和下面文件改成 www:www, 600。这样应该没有问题了。Linux就是好。

谢谢2楼。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
redorange
帖子: 1
注册时间: 2007-12-16 14:32
送出感谢: 0
接收感谢: 0

可以写到一个不可破解的文件中去吗?

#7

帖子 redorange » 2007-12-16 14:36

如windows下的dll,再通过COM组件的方式读回来。同时再用Zend Guard 4.0来加密,混淆读取函数。就算是破解也无法得到正确的dll入口函数了。
如果在Linux中,也有*.so文件提供动态链接的功能。也可以一试。不知道是否可行。
回复

回到 “数据库管理”