Web开发,保护应用程序代码

时间:2012-11-30 15:12:44

标签: frameworks

我在看一些(PHP)框架,我在Laravel文档中注意到了这一点:

与大多数Web开发框架一样,Laravel旨在通过仅放置Web服务器的DocumentRoot中必须公开的文件来保护您的应用程序代码,捆绑包和本地存储。这可以防止某些类型的服务器配置错误使您的代码(包括数据库密码和其他配置数据)可以通过Web服务器访问。最安全。

我熟悉CodeIgniter和CakePHP,据我所知,这两个框架不会这样做。您是否应该将其拆分并将核心逻辑放在webroot之外?根据我的经验,大多数客户使用共享主机,无法更改其VirtualHost设置。

您输出密码可能会出现什么样的错误配置?在开发时,你真的应该这样做吗?

2 个答案:

答案 0 :(得分:0)

是的,仅保留应在DocumentRoot中公开访问的文件是web application security的最佳做法。考虑:

  • 每个私有文件都需要使用Web服务器配置的规则来明确阻止它。
  • 任何向项目添加文件的人都需要考虑Web服务器安全设置。简单地将文件保存在不同的目录中就可以明显地将它们公之于众。开发人员不需要更改安全配置。
  • 无论如何,分离可执行代码和静态文件是一种很好的做法。
  • 不阻止访问PHP脚本会导致意外后果。例如,您可能有一个脚本在命令行手动运行时更新某些数据库记录,因此有人只是猜测脚本名称可以通过互联网运行它。
  • 如果真正的应用程序逻辑在别处,则监视和清除写入公共目录的恶意代码要容易得多。有关示例,请参阅Wordpress breakins。

答案 1 :(得分:0)

CakePHP支持此功能 - 请参阅deployment

  

CakePHP应用程序应该将文档根目录设置为   应用程序的app / webroot。这使得应用程序和   配置文件无法通过URL访问。