您好,感谢大家阅读我的问题。
我已经工作了一会儿一个PHP Web程序,并想知道我应该采取什么措施把它活的服务器上之前保护源。 该人士没有被分发,它正在通过网站访问(用户登录到该网站使用它)。
首先,我想保护源PHP文件被找到并下载。 我没有使用任何框架,只是PHP和所有的文件都在主目录的index.php。 我看周围,似乎robots.txt不具隐藏真正有效。 我碰到的人推荐的.htaccess一些帖子,但我常常认为这是具有密码的目录中保护的文件,所以不知道是否有一种方法,使其htaccess的适合于Web应用程序。
其次,我想有人被访问它们的情况下,保护源文件(发现他们并下载或具有随时访问到服务器的系统管理员)。 我想起了源加密的东西,如Ioncube公司。 我的主人也有GnuPG的[我不太熟悉,任何关于它的想法相比,Ioncube公司?]
我不熟悉的源地保护,所以任何想法将是很好的,当然谢谢大家长久:)
只要确保你的网络服务器设置为处理.php
正确的文件,所有文件都正确的.php
扩展名(不.php.inc
或类似)
只要你的服务器执行PHP,谁都可以下载它的源代码(忽略你的代码,这是一个不同主题的任何安全漏洞)
曾经有一段时间是很普遍的名字包括沿线的文件时mystuff.php.inc
-这是一个坏主意。 说你的网站是在“example.com”,并且您存储数据库配置config.php.inc
-如果有人猜出这个URL,他们可以要求http://example.com/config.php.inc ,让你的数据库登录以纯文本..
它是存储配置和其他库一个目录作为一个好主意bisko回答 -让你有一个像目录结构..
/var/example.com:
include/
config.php
helper_blah.php
webroot/
index.php
view.php
这样,即使您的Web服务器配置被搞砸了,并开始服务.php
文件作为纯文本,它会是坏的,但至少你不会宣布你的数据库的详细信息,以世界..
至于加密文件,我不认为这是一个好主意。该文件必须是未加密到Apache(或任何服务器,你正在使用)可以访问它们。 如果Apache可以访问它,你的系统管理员可以太..
我不认为加密是解决不可信任的系统管理员..
那么你的第一个点,这是Web服务器的安全性,你应该寻找在serverfault帮助。 基本上,你可以使用一个安全/锁定目录里,或通过Web服务访问的虚拟目录中的文件。
关于第二个问题,你可以使用一个混淆了这一点,这将保护您的来源,但要记住,如果他们得到的文件,你只能做这么多的去保护它。 如果他们真的很感兴趣,他们会得到他们想要的东西。
你应该采取的第一步是采取了所有必要的文件在网站根目录,并把它们在其他一些地方,只留下文件,从网上被调用。
例如,如果你有这样的设置:
/var/htdocs/mysexydomain.com/root/config.php
/var/htdocs/mysexydomain.com/root/db.class.php
/var/htdocs/mysexydomain.com/root/index.php
/var/htdocs/mysexydomain.com/root/samplepage1.php
把所有的文件一个水平之上等你拿
/var/htdocs/mysexydomain.com/includes/config.php
/var/htdocs/mysexydomain.com/includes/db.class.php #see the includes dir? :)
/var/htdocs/mysexydomain.com/root/index.php
/var/htdocs/mysexydomain.com/root/samplepage1.php