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

Frameworks Web开发,保护应用程序代码,frameworks,Frameworks,我正在研究一些(PHP)框架,我刚刚在Laravel文档中注意到这一点: 与大多数web开发框架一样,Laravel旨在通过在web服务器的DocumentRoot中只放置必须是公共的文件来保护您的应用程序代码、捆绑包和本地存储。这可以防止某些类型的服务器错误配置使您的代码(包括数据库密码和其他配置数据)无法通过web服务器访问。最好是安全的。 我熟悉CodeIgniter和CakePHP,据我所知,这两个框架不能做到这一点。你真的应该把它分开,把你的核心逻辑放在webroot之外吗?根据我的经

我正在研究一些(PHP)框架,我刚刚在Laravel文档中注意到这一点:

与大多数web开发框架一样,Laravel旨在通过在web服务器的DocumentRoot中只放置必须是公共的文件来保护您的应用程序代码、捆绑包和本地存储。这可以防止某些类型的服务器错误配置使您的代码(包括数据库密码和其他配置数据)无法通过web服务器访问。最好是安全的。 我熟悉CodeIgniter和CakePHP,据我所知,这两个框架不能做到这一点。你真的应该把它分开,把你的核心逻辑放在webroot之外吗?根据我的经验,大多数客户端使用共享主机,无法更改其VirtualHost设置


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

是的,只保留那些应该在DocumentRoot中公开访问的文件是您的最佳实践。考虑:

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

CakePHP支持此功能-请参阅:

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


使用.htaccess覆盖保护?