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

2024-02-09

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

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

是否应该以某种方式过滤 $data 数组?请随意写下您所知道的有关该问题的任何内容。

您能否提供一些有关 ZF 安全性的好文章的链接(主要是关于 SQL 注入和 XSS)?


简短回答
虽然采埃孚获取并提供some尽管采取了保护应用程序的措施,您仍然应该采取与没有 Zend Framework 时使用的相同的预防措施。


关于您的代码片段,请查看有关的章节参考指南中的 Zend_Db http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.write.insert:

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

这并不意味着您不必担心安全问题。例如,对于更新方法 http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.write.update above

第三个参数是一个包含 SQL 表达式的字符串,该表达式用作要更改的行的条件。此参数中的值和标识符未加引号或转义。您有责任确保将任何动态内容安全地插入到该字符串中。看引用值和标识符 http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.quoting了解帮助您做到这一点的方法。

Note因为你正在使用Zend_Db_Table显然,第三个参数是第二个参数。在内部,表实例会将调用委托给数据库适配器,第一个参数是表实例的表名。


关于Zend_View http://framework.zend.com/manual/en/zend.view.helpers.html和 XSS 攻击向量:

Zend_View 附带了一组初始的帮助器类,其中大部分与表单元素生成相关并自动执行适当的输出转义。

Again 其中大部分并不意味着全部。Zend_View确实提供Zend_View::escape() http://framework.zend.com/apidoc/core/Zend_View/Zend_View_Abstract.html#escape帮助您清理输出,但这没什么特别的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止使用 Zend Framework 编写的应用程序中的 SQL 注入攻击? 的相关文章

随机推荐

  • babel-loader:模块构建失败:语法错误:在严格模式下删除局部变量

    我在用着babel loader in webpack使用自定义 babel plugin 将一些第三方代码转换为可以顺利通过 Webpack 捆绑器的格式 然而 当我的代码通过 babel 的解析器 babylon 运行来构建 AST 时
  • Docker 和设置 JVM 参数

    我需要在 Docker 容器中使用此类 JVM 选项运行 Java 应用程序 但我不知道在哪里可以设置它 我尝试使用 java Dcom 命令 但它不起作用 做这个的最好方式是什么 Dcom sun management jmxremote
  • 如何制作CRF++的模板文件?

    我是 CRF 的新手 我正在自学查看其手册 http crfpp googlecode com svn trunk doc index html source navbar templ http crfpp googlecode com s
  • Android 3.0 Canary 中未显示预览

    我已经开始使用最新的 Android Studio 3 0 但预览版遇到问题 它没有在预览选项卡中显示预览 这是我所做的
  • RuntimeError:线程“Dummy-1”中没有当前事件循环

    我正在开发一个带有 Python 后端和 Django 服务器的 Web 应用程序 我有一些树莓派 它们正在将数据发送到服务器 然后我应该从后端获取这些数据 我成功地在我的项目中做到了这一点 所以我对代码非常确定 现在我想将此功能集成到我的
  • WebSocket JS 的自定义标头

    我找到了一个简单的解决方案 使用 WebSocket 和基于 PHP 作为后端 js vuejs 作为前端的 Web 应用程序的自定义标头 我的应用程序应该连接到基于 Java 的 WebSocket 服务器以获取实时统计数据 受 Oaut
  • 如何默认在所有路由上将查询参数保留在角度5中?

    背景 用户使用参数调用应用程序的 url 并使用我的应用程序 在不同路由之间切换时 url 参数应在浏览器地址栏中保持可见 我必须在应用程序的每条路线上保留查询参数 这意味着如果我有网址 www example com app test i
  • 没有 App_Code 的 ASP.Net WCF 服务

    我想创建一个 WCF 服务 用于我的 ASP Net 网站 不是项目 该网站没有代码隐藏文件 这是传统 asmx 样式服务的一个选项 但没有appear用于 wcf 服务 或者将其代码存储在单独的代码项目中 并且仅由 svc 文件公开 我尝
  • 当违反测试超时时,NUnit 内部会做什么?

    当 NUnit 遇到超时时到底会做什么 我曾经认为它会通过抛出 TimeoutException 来中止测试 但这个测试证明并非如此 Test Timeout 100 ExpectedException typeof TimeoutExce
  • DELETE 请求出现巨大延迟,响应为 204,且 Objective-C 中没有内容

    我在使用 iOS 应用程序 我不是 iOS 开发人员 我负责该应用程序使用的 API 和删除请求时遇到问题 Api 使用没有 DELETE 请求内容的 204 响应 到目前为止 该响应对于所有客户端应用程序都运行良好 没有任何问题 问题是
  • tcl深度递归文件搜索,搜索带有*.c扩展名的文件

    使用旧答案在 tcl 中搜索文件 https stackoverflow com a 435094 984975 https stackoverflow com a 435094 984975 首先我们来讨论一下我现在在做什么 使用此功能
  • 查找分配给主驱动器的字母

    我正在尝试找到一个类似的函数Environ查找我的业务中的主驱动器已映射到特定 PC 上的哪个驱动器 使用文件路径 G Eworking SET Operations file 我知道我的电脑已被映射 因此该文件路径位于 G 驱动器内 但其
  • 如何从oracle的日期字段获取日期01-01-9999的时间(以毫秒为单位)

    我想从 oracle 的日期字段获取日期 01 01 9999 的毫秒数 我创建了下面的块来实现相同的目的 set serveroutput on declare base point constant timestamp to times
  • 创建接受任意数量的 void functor 的可变参数函数

    受到我上一个问题的启发 制作可变参数函数 它接受任意函子并返回输入函子的每个返回值的元组 https stackoverflow com questions 15059250 make variadic function which tak
  • 使用 iOS Storyboard 动态调整 UILabel 的高度

    我有一个标签 它是使用 iOS Storyboard 布局创建的 然而 标签的内容是动态的并且可以在运行时改变 如何确保标签的高度根据标签中的内容进行调整 I tried 将行数设置为 0 Setting Editor gt Size to
  • 更改Linux上的线程名称(htop)

    我有一个多线程应用程序 我希望 htop 作为示例 为每个运行的线程显示不同的名称 目前它显示的是用于运行主程序的 命令行 我尝试过使用 prctl PR SET NAME 但它仅适用于 top 并且该调用只能指定最多 16 个字节的名称
  • 烦恼 - 如何禁用 Eclipse 类路径条目警告

    我已经搜索了选项 但似乎找不到禁用这些警告的方法 诸如此类的警告 Classpath entry org eclipse jdt junit JUNIT CONTAINER 4 will not be exported or publish
  • 并发收集支持删除指定项吗?

    非常简单 除了 ConcurrentDictionary 如果必须的话我会使用它 但这不是真正正确的概念 是否有任何并发 集合 IPrducerConsumer 实现 支持基于项目或谓词的简单相等性删除特定项目定义删除条件 说明 我有一个多
  • 将 unicode 字符编码为 un​​icode 转义序列

    我有一个包含网站和地址的 CSV 文件 我需要处理这个文件来生成一个 json 文件 我将在 Django 中使用该文件将初始数据加载到我的数据库中 为此 我需要将 CSV 文件中的所有特殊字符转换为 unicode 转义字符 这是一个例子
  • 如何防止使用 Zend Framework 编写的应用程序中的 SQL 注入攻击?

    我对ZF的安全没有任何概念 操作数据库时必须使用Filter吗 也许绑定就足够了 这个怎么样 users gt update data id 1 是否应该以某种方式过滤 data 数组 请随意写下您所知道的有关该问题的任何内容 您能否提供一