当前位置:  开发笔记 > 编程语言 > 正文

如何在Zend Framework中编写的应用程序中防止SQL注入攻击?

如何解决《如何在ZendFramework中编写的应用程序中防止SQL注入攻击?》经验,为你挑选了1个好方法。

我对ZF安全没有任何概念.在数据库上操作时是否必须使用Filter?也许绑定就足够了?这个怎么样:

$users->update($data, 'id=1');

应该以某种方式过滤$ data数组吗?随意写下你对这个问题的了解.

你能给一些关于ZF安全性的文章链接(主要是关于SQL注入和XSS)吗?



1> Gordon..:

简短回答
虽然ZF采取并提供了一些措施来保护您的应用程序,但您仍应采用与Zend Framework相同的预防措施.


关于您的代码段,请参阅参考指南中有关Zend_Db的章节:

默认情况下,使用参数插入数据数组中的值.这可以降低某些类型的安全问题的风险.您不需要对数据数组中的值应用转义或引用.

这并不意味着您不必担心安全问题.例如,对于上面的Update方法

第三个参数是一个包含SQL表达式的字符串,该表达式用作要更改的行的条件.此参数中的值和标识符不会被引用或转义.您有责任确保将任何动态内容安全地插入到此字符串中.有关帮助您执行此操作的方法,请参阅引用值和标识符.

注意,因为你Zend_Db_Table明显使用,第三个参数是第二个参数.在内部,表实例将委托对db适配器的调用,第一个param是表实例的tablename.


关于Zend_View和XSS攻击向量:

Zend_View带有一组初始的辅助类,其中大部分与表单元素生成有关,并自动执行适当的输出转义.

同样,大多数并不意味着所有.Zend_View确实提供了Zend_View :: escape()来帮助你清理输出,但这没什么特别的.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有