我在一个线程中看到并在一些框架中看到,建议使用以下结构。有人可以在安全性方面解释为什么(如果您能彻底解释,将不胜感激)?这还有其他好处吗?
- 根
- 应用程序
- 应用程序文件夹
- 配置
- 控制器
- 楷模
- public_html
- css
- js
- 图片
- 索引.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 库放在 public 文件夹下的子目录中,并使用包含中的相对路径引用它们。这样,我不必更改任何路径来在我的开发服务器和生产服务器上运行/测试它们。
去年,我的一个客户网站开始反复遭到黑客攻击。黑客以某种方式获得了 FTP 帐户的访问权并插入了他们自己的文件(包括 php),以及替换和删除其他文件,以及创建目录。尽管将所有目录设置为 755 并将文件设置为 644,但所有这一切。当然,一旦他们有了 FTP 帐户,游戏就结束了,再试一次。
他们现在已经入侵了该网站 6 次(据我所知)。这是我唯一一个被黑客入侵的网站!我正在考虑将我的 php 库文件重新定位到公用文件夹之外是否有任何意义(无论如何,对于这个站点)。我已经确认这些文件都不能通过浏览器下载/查看(获取空白页面和空白查看源页面)。
我还使用 SFTP、安全密码和防范 SQL 注入攻击。
黑客至少有一次使用第三方破解服务来攻击该网站。每次,他们都会对网站/网站做一些不同的事情。本网站仅使用 PayPal,因此不会在现场存储客户数据。他们已经替换了发送到 PayPal 的电子邮件地址,以识别卖家帐户以将付款记入其中,但客户似乎永远无法实际付款(黑客可能没有 PayPal 帐户)。
剩下的一种可能性是他们商店计算机上的键盘记录器。我将在几天后通过铃声将其发送出去。
当然,托管服务提供商与此问题无关。他们进行了“扫描”,只发现了黑客创建、替换或删除的 21 个脏文件(不包括目录)中的 5 个。他们一直告诉我要为“站点锁定”服务付费,这似乎完全没用,完全是浪费钱。
我很想找到一本全面的“反黑客食谱”,它非常详细地解决了共享主机情况下的安全问题,并且有很多很好的例子。有这样的事吗?