2010-07-19 114 views
7

现在我正在学习CakePHP框架,我只是想知道CakePHP的安全性。例如其组件的安全性如何,例如身份验证组件的安全性。另外,作为开发者,我们可以做些什么来提高CakePHP基础Web应用程序的安全性?CakePHP的安全性如何,我们如何提高安全性?

你们还推荐任何书籍或网站来了解更多关于CakePHP安全性的内容吗?

希望能尽快听到你们的消息。 谢谢

回答

5

蛋糕 遵循许多领域的最佳实践,并且内置了非常安全的工具 附带了基础结构,它已经在一定程度上涵盖了许多webapp安全的典型领域。例如,您不需要担心SQL注入,因为Cake的数据库抽象会转义所有输入。在它不,the manual warns you适当:

updateAll(array $fields, array $conditions) 

!的$ fields数组接受SQL表达式。文字值应该手动引用。

使用SecurityComponent可以获得自动表单欺骗保护。
数据验证是模型的重要组成部分。
AuthComponent哈希值和盐密码 正确 ,尽管不一定以尽可能最安全的方式。
对于htmlentities,有一个方便的h()快捷方式,您应该使用它来转义输出以避免XSS问题。
等等佩尔格佩尔格...

仍然必须正确使用,虽然所有的组件,并要小心,不要打开任何“定制”孔。 Cake只是一个工具箱,用它构建一个可怕的不安全应用程序仍然是完全可能的。无论枪有多好,你仍然可以在脚下自己射击。默认的Cake结构只是一个起点。在安全性方面,这不是最终的全部;为你自己想想。 John提供的link确实是一个很好的起点。

4

CakePHP框架已经存在了很长一段时间(自2005年以来),它是开源软件。这意味着其代码可供任何希望这样做的开发人员或非开发人员查看。 CakePHP社区和安全社区都有足够的时间来查看代码库并查找/纠正潜在的安全问题。这并不意味着该软件是完美的,但是CakePHP非常流行,你可以打赌它已经被彻底地审查了,如果它有任何缺陷,它们很深,很难找到/识别。

但请记住,只是因为框架中的代码是安全的并不意味着使用它会使您的代码安全。您仍然需要遵循安全编码实践,因为无论您使用的框架的安全级别如何,您的代码库都可能受到攻击。

+1

谢谢约翰,我问这个问题的原因之一是,当我在不使用CakePHP的情况下对完整的身份验证系统进行研究时,发现其中很大一部分与安全问题有关。诸如数据验证,防止SQL注入等等。所以通过采用一个框架(cakephp),我总结出一些安全防护措施,以防止我刚刚提到的一些事情。我的假设是否正确? 还有什么特别的东西,开发人员总是有安全的代码? 再次,在此先感谢:) – 2010-07-19 17:01:01

+1

我不熟悉CakePHP,因为我从来没有使用它,所以我不确定它提供什么样的强制执行和工具来提供安全编程。它可能会提供工具来处理数据验证和卫生设备,但您可能需要明确使用这些工具,因为我怀疑它们是自动的。 – 2010-07-19 18:00:04

+1

你提到的“安全编码实践”可以请你提供一些提示或参考 – RSK 2010-07-20 07:32:28

2

蛋糕安全性相当不错,但一切都有漏洞。对于一个超安全的网站,我会研究已知的安全漏洞和失误,并针对这些案例测试网站。仅仅依靠别人的安全程度是不够的。

有些网站不需要高度的安全性,它们可以提高性能。其他人必须是不可侵犯的。

所有的说法,我对Cake的内置安全印象深刻,而且还没有修改它。

6

狮子座:有些网站并不需要很高的安全级别 ,他们可以给一个 性能损失。其他必须是不可侵犯的 。

对不起狮子座,但我不同意。您建立的每个站点都是在考虑到安全性的情况下完成的。不管它是什么类型的网站。假设你已经构建了这个非常紧密的superduper hackersafe站点。您将其托管在共享服务器上,并猜测是什么..有人通过安全网站中的漏洞访问了您的安全网站。甚至整个服务器。

我知道,它是一个厄运理论,但我相信像这样的东西发生在每天的基础上。