【发布时间】:2011-03-17 23:31:29
【问题描述】:
现在我正在学习 CakePHP 框架,我只是想知道是什么让 CakePHP 安全。它的组件有多安全,例如身份验证组件的安全程度。另外,作为开发人员,我们可以做些什么来提高 CakePHP 基础 Web 应用程序的安全性?
你们还推荐任何书籍或网站来了解有关 CakePHP 安全性的更多信息吗?
希望尽快收到你们的来信。 谢谢
【问题讨论】:
标签: php security web-applications cakephp
现在我正在学习 CakePHP 框架,我只是想知道是什么让 CakePHP 安全。它的组件有多安全,例如身份验证组件的安全程度。另外,作为开发人员,我们可以做些什么来提高 CakePHP 基础 Web 应用程序的安全性?
你们还推荐任何书籍或网站来了解有关 CakePHP 安全性的更多信息吗?
希望尽快收到你们的来信。 谢谢
【问题讨论】:
标签: php security web-applications cakephp
Leo:有些网站不需要高等级 的安全,他们可以给一个 性能受到打击。其他必须是 不可侵犯。
对不起,Leo,但我不同意。您构建的每个站点都非常注重安全性。不管它是什么类型的网站。例如,假设您已经建立了这个非常严格的超级黑客安全网站。您将其托管在共享服务器上,然后猜猜是什么……有人通过您不太安全的站点上的漏洞访问了您的安全站点。甚至是整个服务器。
我知道,这是一个厄运理论,但我相信这样的事情每天都会发生。
【讨论】:
Cake 在许多领域都遵循最佳实践,并且内置了相当安全的工具,其基础架构已经在一定程度上涵盖了许多典型的 webapp 安全领域。例如,您不必担心 SQL 注入,因为 Cake 的数据库抽象会转义所有输入。如果没有,the manual warns you 适当:
updateAll(array $fields, array $conditions)
!$fields 数组接受 SQL 表达式。字面值应手动引用。
使用 SecurityComponent,您可以获得自动表单欺骗保护。
数据验证是模型的重要组成部分。
AuthComponent 散列和加盐密码正确,但不一定以最安全的方式。htmlentities 有一个方便的 h() 快捷方式,您应该使用它来转义输出以避免 XSS 问题。
等等等等...
您仍然必须正确使用所有组件,并注意不要打开任何“自定义”孔。 Cake 只是一个工具箱,仍然完全有可能使用它构建一个极其不安全的应用程序。不管枪有多好,你仍然可以在脚上开枪。默认的 Cake 结构只是一个起点。就安全性而言,这不是万能的。为你自己想想。 John 提供的link 确实是一个很好的起点。
【讨论】:
CakePHP 框架已经存在了很长一段时间(自 2005 年以来)并且是开源软件。这意味着任何希望这样做的开发人员或非开发人员都可以查看其代码。 CakePHP 社区和安全社区都有充足的时间来审查代码库并发现/纠正潜在的安全问题。这并不意味着该软件是完美的,但随着 CakePHP 如此受欢迎,您可以打赌它已经过彻底的审查,如果其中有任何缺陷,它们很深,很难找到/识别。
但请记住,仅仅因为框架中的代码是安全的,并不意味着使用它可以使您的代码安全。您仍然需要遵循安全编码实践,因为无论您使用的框架的安全级别如何,您的代码库都可能容易受到攻击。
【讨论】:
蛋糕的安全性很好,但每样东西都有漏洞。对于一个超安全的站点,我会研究已知的安全漏洞和错误,并针对这些情况测试站点。仅仅依靠别人对安全程度的声明是不够的。
有些网站不需要高级别的安全性,它们会影响性能。他人不可侵犯。
总而言之,我对 Cake 的内置安全性印象深刻,还没有修改它。
【讨论】: