我在一个线程和一些框架中看到,建议使用以下结构。有人能从安全角度解释一下为什么吗(如果你能彻底解释一下,我将不胜感激)?这样做还有其他好处吗?
- 根
- 应用程序
- 应用程序文件夹
- 配置
- 控制器
- 模型
- public_html
- css
- js
- 图像
- index.php
- .htaccess
- 应用程序
编辑:
如果服务器被黑客入侵,这会有任何影响吗?
这个想法是,只有用户应该能够访问的东西才放在public_html
中,这样,如果互联网上的随机用户猜测正确的URL,他们就无法访问你的代码或数据。
通常的方法是在应用程序中有一个公用文件夹,然后将其符号链接到public_html或下,而不是将应用程序实际拆分为两部分。
我在以前的项目中为一个客户将他们的配置文件放在public_html
文件夹之外。这是可能的,但当包括PHP文件时,我只是做了这样的
<?php
require_once('/home/brandon/config/config.php');
?>
取而代之的是:
<?php
require_once('/home/brandon/public_html/config.php');
?>
我一直在努力解决这个问题。在管理大量网站时,我决定将php库放在公共文件夹下的子目录中,并在includes中使用相对路径引用它们。这样,我就不必更改任何路径来在我的开发服务器和生产服务器上运行/测试它们。
去年,我的一个客户网站开始反复遭到黑客攻击。黑客以某种方式访问了FTP帐户并插入了自己的文件(包括php),还替换了一些文件并删除了其他文件,并创建了目录。尽管将所有目录设置为755,将文件设置为644个排列,但所有这些都是如此。当然,一旦他们有了FTP帐户,游戏就结束了,再试一次。
据我所知,他们已经入侵该网站6次了。这是我的网站中唯一一个被黑客入侵的!我正在考虑是否有任何意义,将我的php库文件重新定位到公共文件夹之外(无论如何,对于这个网站)。我已经确认,这些文件都不能通过浏览器下载/查看(获取空白页面,空白查看源页面)。
我还使用SFTP、安全密码和防范SQL注入攻击。
黑客至少有一次使用第三方破解服务攻击过该网站。每次,他们都会对网站做一些不同的事情。此网站仅使用PayPal,因此不会在现场存储客户数据。他们已经替换了发送给PayPal的电子邮件地址,以识别将付款贷记到的卖家帐户,但客户似乎永远无法实际付款(黑客可能没有PayPal帐户)。
剩下的一种可能性是他们商店计算机上的密钥记录器。我将在几天后把它通过振铃器。
当然,托管提供商将与这个问题无关。他们进行了一次"扫描",只发现了黑客创建、替换或删除的21个脏文件中的5个(不包括目录)。他们一直告诉我要为"站点锁定"服务付费,这似乎完全没有用,完全是浪费钱。
我很想找到一本全面的"反黑客食谱",详细介绍共享托管情况下的安全性,并有很多好的例子。有这样的事情吗?