knex.where容易受到sql注入攻击吗?

2024-06-28

这是一个后续问题https://stackoverflow.com/a/50337990/1370984 https://stackoverflow.com/a/50337990/1370984 .

它提到knex('table').where('description', 'like', '%${term}%')容易受到sql注入攻击。甚至有评论提到第一种情况容易受到注入攻击。然而所提供的参考资料从未提及.where容易受到注入攻击。

这是一个错误吗?为什么 knex 会允许.where容易受到注入攻击,但不会.whereRaw('description like \'%??%\'', [term])。这两种情况下参数不是都被参数化了吗?


这是一个后续问题https://stackoverflow.com/a/50337990/1370984 https://stackoverflow.com/a/50337990/1370984 .

它提到 knex('table').where('description', 'like', '%${term}%') 容易受到 SQL 注入攻击。甚至有评论提到第一种情况容易受到注入攻击。然而,所提供的参考资料从未提及容易遭受注入攻击的地方。

我是 knex 维护者,我在那里评论过

knex('table').where('description', 'like', `%${term}%`)

不易受到 SQL 注入攻击。

这是一个错误吗?为什么 knex 允许 .where 容易受到注入攻击,但不允许 .whereRaw('description like \'%??%\'', [term]) 。这两种情况下参数不是都被参数化了吗?

That .whereRaw当您将值直接插入到 sql 字符串时(例如 ?? 标识符替换),很容易受到攻击。

正确使用为.whereRaw在这种情况下例如:

.whereRaw("?? like '%' || ? || '%'", ['description', term])

所有标识符都被正确引用并且term作为参数绑定发送到数据库。

因此,答案和添加到该答案的大多数评论都是完全错误的。

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

knex.where容易受到sql注入攻击吗? 的相关文章

  • 如何告诉 Sonar 使用我的可靠报告来获取单元测试结果

    我们有一个 Jenkins 作业 其中包含一堆 javascript 文件 我们通过 grunt 构建项目 并在构建结束时运行 JSCover 来运行单元测试并收集代码覆盖率 这一切都有效 我们得到了一个不错的 LCOV 文件 并且在 ta
  • 在 NodeJs 中使用 Jest 模拟 Http Post 请求

    我有一个使用本机 https request 使用 Azure Function 内的 Node Js 构建的外部 POST API 一切正常 现在我正在尝试构建单元测试用例 并对模拟 Request 方法感到震惊 回调响应具有 on 功能
  • 切换 Ag-Grid 中的浮动过滤器?

    我试图通过开关或按钮单击来确定浮动过滤器的显示 看起来很简单 我应该能够在 true 和 false 之间切换 将该值提供给网格选项中的浮动过滤器 然后刷新标题 对吗 不幸的是 网格似乎总是落后一步 当我第一次点击时 什么也没有发生 当我将
  • 停止倒数计时器 Javascript onClick

    给出以下代码 myButton02 click function myButton02 hide counter animate width toggle var count 65 var counter setInterval timer
  • 如何让机器人状态显示为“手机在线”

    我看到 NotSoBot 的状态为在线在移动 https i stack imgur com IiF4k png 有没有办法可以在discord js 中做到这一点 我知道这已经很旧了 但更简单的方法是将其添加到定义客户端 机器人的位置 c
  • 递归process.nextTick警告

    作为我的应用程序的一部分 我有以下代码行 process nextTick function pre populate cache with all users console log scanning users table in ord
  • 导出数据库的 CREATE 脚本

    假设我已经在 pgAdmin 中创建了一个数据库 但我想导出一个 CREATE sql 文件 我将如何生成转储 以下是如何使用 pgAdmin 创建一个架构脚本 该脚本可以与 PostgreSql 数据库架构比较工具 例如apgdiff h
  • 闭包和异步 Node.js 函数

    All 尝试了解 Node js 上下文中的闭包 异步调用 我有以下代码 timer setInterval pollOID 1000 function pollOID for channel in channels session get
  • Angularjs 使用 ng-init 为 ng-model 赋值

    您好 我有以下问题 看起来很简单并且应该有效 但事实并非如此 在我的代码中我输入了
  • 如何在反应路由器的登录页面中隐藏导航栏

    我想隐藏登录页面中的导航栏 我确实做到了 但我在其他页面上看不到导航栏 此代码是 My App jsx 文件的一部分 我在 App 的状态中创造了历史 当路径名是 或 login 时 我会隐藏导航栏 有用 但随后我输入了 ID 和密码 然后
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 链接index.html client.js 和 server.js

    我从 Node js 开始 我的第一个程序已经遇到了问题 下面是我正在使用的代码 索引 html
  • 多个模板槽的相同槽内容

    在vuejs中 有没有一种方法可以为多个插槽设置相同的内容 而无需复制粘贴 So this
  • Python 中 Javascript 的 reduce()、map() 和 filter() 的等价物是什么?

    Python 的等价物是什么 Javascript function wordParts currentPart lastPart return currentPart lastPart word Che mis try console l
  • 如何在从数据库异步加载中用占位符替换不存在的图像

    我有一个包含图像的数据库 我需要根据用户的请求即时加载这些图像 这些图像将作为包含 div 容器中的单独 s 的背景图像 类似于图像滚动条 该数据库当前是本地数据库 但这不是我的问题 问题是数据库可能没有我请求的所有图像 并且我可能会得到一
  • CORS:为什么我的浏览器不发送 OPTIONS 预检请求?

    从我读到的内容来看CORS https en wikipedia org wiki Cross origin resource sharing 我理解它应该按如下方式工作 客户端的脚本尝试获取资源从服务器不同的起源 浏览器拦截这个请求并首先
  • 删除移动设备上的 adsense

    我正在研究响应式设计 但在使用 adsense 时遇到了问题 我有一个广告应该显示在桌面设计上 但不能显示在移动设计上 因此 只有在桌面上查看网站时 才应将广告代码放置在 html 中 css 可以使用 display none 但这违反了
  • 将 html

    我有一些服务器端代码当前支持 http 字节范围请求 没有任何问题 但是 我希望能够在将转码后的块发送到客户端之前使用 ffmpeg 即时转码视频文件 位于磁盘上 但 ffmpeg 要求我在获取字节时给它一个寻道时间范围来自客户 给定客户端
  • 依靠条件连接大表的速度很慢

    当表很小时 这个查询有合理的时间 我试图找出瓶颈是什么 但我不知道如何分析EXPLAIN结果 SELECT COUNT FROM performance analyses INNER JOIN total sales ON total sa
  • 离子选择:预选值在单击一次之前是不可见的

    我刚刚在 ionic 版本 6 中创建了一个 ion select 我的问题是 我在页面加载时已成功预选了一个值 但此预选值未显示在 UI 中 它只是在我单击选择之后出现 但在它没有出现之前 如图 2 所示 我在 ionViewWillEn

随机推荐

  • Jackson:在反序列化时获得空引用

    我正在使用 spring mvcrestful服务 通过添加依赖项 我的其余控制器会自动generate json从我的response entities 依赖性 jackson 2 9 0 compile com fasterxml ja
  • 在 Javascript 变量声明中使用逗号[重复]

    这个问题在这里已经有答案了 我刚刚遇到以下代码 function showMatch str reg var res matches while true matches reg exec str if matches null break
  • 激活 IInterceptor 时出错...仅通过 COM?

    TL DR Kernel Get
  • S3 - 访问控制允许来源标头

    有没有人设法添加Access Control Allow Origin到响应头 我需要的是这样的 img src http 360assets s3 amazonaws com tours 8b16734d 336c 48c7 95c4 3
  • DateTime.Now 相当于 TimeOnly 和 DateOnly?

    NET 6 C 10 推出TimeOnly and DateOnly结构体 分别表示仅时间和日期 老好人DateTime结构总是有一个Now静态属性将为您提供当前日期和时间 我期待着两者TimeOnly and DateOnly结构具有类似
  • 在线程中访问 UI

    当我尝试更改 UI 属性 特别是启用 时 我的线程抛出 System Threading ThreadAbortException 如何在线程中访问 UI 您可以使用BackgroundWorker 然后像这样更改UI control In
  • 如何使用 R 获取所有 S&P500 公司代码列表?

    我想在R中制作FOR语句来一次性分析股票数据 但我不知道如何获得 S P 公司代码列表 请让我知道解决方案 谢谢 library rpart library rpart plot library quantmod startDate as
  • Kubernetes中使用fluidd读取容器日志时的权限问题

    我对 kubernetes 非常陌生 并且在 GCE 中运行了带有 redis 和 mongodb 的测试应用程序 我想用 Fluentd 抓取我的日志文件并将它们发送到 logz 我使用以下 Fluentd 配置文件 我在本地计算机上测试
  • Java catch块,捕获的异常不是final的

    我正在检查 Java SE7 的新功能 目前处于以下状态 http docs oracle com javase 7 docs technotes guides language catch multiple html http docs
  • 在 flutter 中使用按钮手势旋转文本或图像

    现在 当我做出 360 度手势时 图像仅从左向右平滑旋转 所需结果 当我们做出 360 度手势时应该从右向左旋转 Done 当我们做出 360 度手势时 应该从右向左旋转 一旦我们在某个点开始从左向右旋转 然后再次从右向左旋转 它应该从做出
  • Rails - 查找多个数组之间的交集

    我正在尝试查找多个数组之间的交集值 例如 code1 1 2 3 code2 2 3 4 code3 0 2 6 所以结果是 2 我知道在 PHP 中你可以使用 array intersect 来做到这一点 我希望能够轻松添加额外的数组 所
  • ASP.NET身份用户登录后为空

    Edit 1 更新代码以更好地处理这个问题后 我现在遇到了以下问题 提供的防伪令牌适用于与当前用户不同的基于声明的用户 这是更新后的代码 var result await SignInManager PasswordSignInAsync
  • 如何让 Visual Studio Code 记住以前的提交消息?

    我最近开始从 Eclipse 转向使用 Microsoft 的开源 Visual Studio Code IDE 来开发 Web 项目 我发现 VSCode 非常直观且易于使用 但我怀念 VSCode 的一个功能是 IDE 无法记住提交消息
  • JavaScript 中的属性、键和值

    我试图澄清我对 JavaScript 领域中术语 属性 键 和 值 的理解 在阅读了几本有关该语言的书籍甚至在谷歌上搜索了这些术语之后 我仍然觉得自己不清楚它们的确切含义 所以假设我们有以下内容 var object name 5 我对以下
  • 自动缩放连续 Azure WebJobs 不起作用

    我在一个天蓝色网站上设置了一些连续的 Web 作业 可扩展到两到三个大型实例 始终开启的标准模式 我的工作只在 w3wp 进程之一上运行 我需要这些来横向扩展 但他们不会 我看过一些视频并阅读了文档 我没有 settings job 文件或
  • 无法安装 python-docx (MacOS)

    我正在尝试安装docx包裹 但得到以下内容ImportError ImportError cannot import name Document 所以按照建议here https stackoverflow com a 41655815 1
  • 如何从 Jersey-2 请求过滤器访问 wicket 会话?

    在 Jersey 1 x 中 我们从 Jersey 会话属性访问 Wicket 会话 如此处所述https stackoverflow com a 15767824 1399659 https stackoverflow com a 157
  • Perl - Win32 - 如何从另一个进程非阻塞读取文件句柄?

    我正在编写一些通过 STDIN 与客户端进程通信的服务器代码 我正在尝试编写一段 Perl 代码 用于异步接收来自客户端 STDOUT 的响应 代码的阻塞版本可能如下所示 sub read from client my file handl
  • ios 8 相机显示黑屏

    此代码用于从相机中一张一张地捕获图像 但在下次拍摄一张图像后 相机将打开但黑屏 就像它 快门关闭 所有其他 ios 版本都可以工作 但不能在 ios 8 中工作 请告诉我该如何解决呢 void openCamera if PickerHan
  • knex.where容易受到sql注入攻击吗?

    这是一个后续问题https stackoverflow com a 50337990 1370984 https stackoverflow com a 50337990 1370984 它提到knex table where descri