部署

    如果你要把你的应用程序放在可以公开访问的环境,最好确保它没有任何漏洞。请查看Security,了解如何防备 CSRF 攻击、表单字段篡改,等等。进行 及/或Data Sanitization 也是保护数据库、防备 XSS 攻击很好的办法。检查确保只有 目录可以公开访问,机密信息(比如应用程序的盐和安全密钥)是秘密的,也是唯一的。

    在应用程序中正确地设置文档根目录,是保护代码不泄漏、保证应用程序更安全的重要步骤。CakePHP 应用程序应当设置文档根目录为应用程序的 app/webroot 目录。这使得应用程序和配置文件无法通过网址访问。设置文档根目录对不同的 web 服务器是不同的。关于 web服务器相关的信息,可以参看 文档。

    更新 core.php、尤其是 debug 的值是极其重要的。设置 debug = 0 禁用了一系列开发功能,一般来说,是绝不应当暴露在互联网中的。禁用调试改变了下面这些事情:

    • 禁止了由 和 debug() 产生的调试信息。
    • 错误视图(view)提供更少的信息,而且只给出笼统的错误消息。
    • 不显示错误。

    你可以检查环境变量,从而在不同环境中动态地设置调试级别。这样就避免了部署 debug > 0的应用程序,也省去了在每次部署到生产环境之前要改变调试级别。

    然后就可以在 core.php 中动态地设置调试级别:

    因为通过调度器(Dispatcher)处理静态资源,比如插件的图像、JavaScript 和 CSS 文件,是令人难以置信的低效的,所以强烈建议在生产环境中符号链接(symlink)它们。比如象这样: