2010-01-19 153 views
0

我有一个PHP文件,我基本上给我的密码给我所有的用户。我想成为唯一一个能够查看内容并查看页面的人。最好的办法是做什么?安全PHP文件

密码保护?需要一个特殊的cookie,只有我有?

给我一些想法..

+0

这些是您网站上用户的密码吗?或者,您是否已经为自己编写密码以保存自己的密码? – 2010-01-19 03:41:05

回答

1

如果你想能够看到,如果通过浏览器,请尝试以下:

查找到WWW基本身份验证,这将主要有浏览器提示您用户名和密码。

http://www.htaccesstools.com/htaccess-authentication/
http://eregie.premier-ministre.gouv.fr/manual/howto/auth.html

如果你有一个静态IP地址,你可以确保只有您的IP地址可以看到页面:

if($_SERVER['REMOTE_ADDR'] != '192.168.1.1') 
{ 
     die(); 
} 

如果不设被浏览器看到,最好的解决方案是将文件放在DocumentRoot上面。又名:

如果你的index.php文件是/路径/要/根/的public_html放在/路径文件/要/根

+1

除非Web服务器存在修改请求(例如大写文件扩展名)下载文件内容的错误。 – atk 2010-01-19 03:35:19

+0

删除了该部分。 – 2010-01-19 03:41:59

+0

basic authn也有缺陷。浏览器通常会缓存身份验证信息,并在每次请求时重新发送,即使单击“注销”链接,也会使共享终端不安全,无需重新启动浏览器。 – atk 2010-01-19 04:32:51

12

我建议你停止存储密码和改为存储密码的散列。即使你不应该知道用户的密码。

你正在做什么甚至没有认证或授权。充其量是鉴定。如果你这么做的话,Chacha102说了些什么,再加上你还想要chgrp和chmod,这样只有互联网用户和你的用户才能看到它。

0

如果你存储在一个wwwroot下的一个位置的所有数据,那么你就有可能在文件的下载,无论是通过安全漏洞的错误的配置。此解决方案还可能包含用户和密码的硬编码,这使得密码轮转更加困难。如果用户可以更改文件中的值,那么必须非常小心,他们不能将PHP代码注入密码文件,否则他们将能够接管您的应用程序。而管理员查看明文密码的能力被认为是不好的做法,应该避免。

现代最好的做法是不是这样做的,如果在所有可能的。将数据存储在Web服务器通常不允许直接下载的位置(例如wwwroot之外或您已经防止SQL注入问题的数据库中),实施身份验证和授权方案,并依赖该方案控制谁可以做什么。

退房www.owasp.org,以获得更多的细节 - 这是一个很好的起点。

1

不要存储用户密码以明文在数据库中哈希他们。

因为我假设你需要为用户登录的功能,我建议创建一个脚本,它可以让管理员帐户(您可以识别不过你想要的)任何用户登录。