ColdFusion 在字符串中构造数据库查询时添加额外的引号

2024-01-24

我正在 ColdFusion 中编码,但试图留在 cfscript 中,所以我有一个函数允许我传入一个查询来运行它 <cfquery blah > #query# </cfquery>

但不知何故,当我用sql = "SELECT * FROM a WHERE b='#c#'"并将其传入,ColdFusion 已将单引号替换为 2 个单引号。所以它变成了 WHERE b=''c''在最终查询中。

我尝试过多种不同的方式创建字符串,但我无法让它只留下一个引号。即使进行字符串替换也没有效果。

知道为什么会发生这种情况吗?它毁了我在这个项目期间生活在 cfscript 中的希望


根据设计,ColdFusion 在插入变量时会转义单引号<cfquery> tags.

为了做你想做的事,你需要使用PreserveSingleQuotes() http://livedocs.adobe.com/coldfusion/8/htmldocs/functions_m-r_14.html功能。

<cfquery ...>#PreserveSingleQuotes(query)#</cfquery>

然而,这并没有解决您所面临的 SQL 注入的危险。

Using <cfqueryparam> http://livedocs.adobe.com/coldfusion/8/htmldocs/Tags_p-q_18.html还允许数据库缓存查询,这在大多数情况下会提高性能。

阅读可能会有帮助旧的本福塔专栏 http://www.adobe.com/devnet/coldfusion/articles/ben_forta_faster.html and 布拉德·伍德最近发表的一篇文章 http://www.codersrevolution.com/index.cfm/2008/7/26/cfqueryparam-its-not-just-for-security-also-when-NOT-to-use-it有关使用好处的更多信息<cfqueryparam>.

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

ColdFusion 在字符串中构造数据库查询时添加额外的引号 的相关文章

  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • Snowflake 中的动态 SQL

    当我在雪花中运行动态 SQL 时 遇到以下错误 未完成对 SQL MAIN 的分配 因为值超出了变量的大小限制 它的大小是263 限制为 256 内部存储大小以字节为单位 这是代码 SET v G 1 SET v G1 v G VARCHA
  • SQL Server:为什么 ISO-8601 格式的日期依赖于语言?

    我需要一些帮助来理解 SQL Server 中的日期格式处理 如果您尝试以下操作 它将返回正确的结果 SET LANGUAGE English SELECT CAST 2013 08 15 AS DATETIME 2013 08 15 00
  • 调用名称中带有变量的变量 - Coldfusion?

    尝试使用方括号表示法来引用动态变量 如果您想了解应用程序 我正在循环访问由查询创建的一组产品 为每个产品创建与其唯一 SKU 相关的字段 我已将其范围缩小到这段代码 当我尝试运行它时 它会抛出 无效表达式 错误
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • meta_query,如何使用关系 OR 和 AND 进行搜索?

    已解决 请参阅下面的答案 我有一个名为的自定义帖子类型BOOKS 它有几个自定义字段 名称为 TITLE AUTHOR GENRE RATING 我该如何修复我的meta query下面的代码以便仅books在自定义字段中包含搜索词 tit
  • Javascript:删除字符串标点符号并拆分成单词?

    抱歉 如果之前有人问过这个问题 但我正在尝试从这样的字符串中获取单词数组 Exclamation Question Quotes Apostrophe Wasn t Couldn t Didn t 该数组应该看起来像这样 exclamati
  • 可以有一个带有可变列的表吗?

    这可能是一个愚蠢的问题 但这里是 是否可以创建一个能够包含具有可变列数和自定义列名称的行的动态表 我浏览过 EAV 建模 但看起来很沉重 现实生活中的例子可能是这样的 假设我有一个客户登记册 但每个客户可能需要输入不同的信息 根据您要输入的
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • 执行 Boyer-Moore 模式匹配时是否必须考虑编码?

    我即将实现 Boyer Moore 模式匹配算法的变体 具体来说是星期日算法 我问自己 我的字母表大小是多少 它是否取决于编码 可能的字符数 或者我可以假设我的字母表由 256 个符号组成 一个字节可以表示的符号数 在许多其他情况下 将字符
  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • 使用信用卡号的字符串格式

    我正在尝试将信用卡号显示为类似 的字符串 I tried txtbox Text string Format 0 ccNumber 但它不起作用 有任何想法吗 String Format 0 0000 0000 0000 0000 numb
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • SQL Server 中离线索引重建和在线索引重建有什么区别?

    重建索引时 有一个选项ONLINE OFF and ONLINE ON 我知道当ONLINE模式打开时 它会复制索引 切换新查询以利用它 然后重建原始索引 使用版本控制跟踪两者的更改 如果我错了 请纠正我 但是 SQL 在离线模式下会做什么
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons

随机推荐

  • VS2017任务运行资源管理器未找到任务

    我正在尝试在 VS 2017 内的 MVC Core 项目中设置 gulp 我有我认为有效的 gulpfile js var gulp require gulp var rimraf require rimraf var concat re
  • 在 DataBound 事件上获取绑定到 ListView 的数据

    我有一个 ListView 控件 并且已向该控件添加了一个 DataBound 事件 不知道这是否正确 我想从该事件访问绑定到该特定 ItemTemplate 的数据 这可能吗 C 解决方案 protected void listView
  • 当 contenteditable 中有多行时,替换光标前的单词

    我想替换光标之前的单词contenteditablediv 另见在文本区域或 contenteditable div 中键入 TAB 时检测最后写入的单词 https stackoverflow com questions 50794324
  • “忙碌”效果叠加

    我有一个 wpf 应用程序 它执行非常繁重的操作 其中用户需要等待应用程序 思考 我想要做的是 当应用程序的主线程正在思考时 另一个线程将禁用整个窗口并给它一种灰色的颜色 并且屏幕中间会出现一个圆形进度条 这是一个大问题 我真的不需要整个代
  • 类型“ViewController”不符合协议“UITableViewDataSource”

    很快就开始练习了 在单个 ViewController 中我试图制作一个UITableView 在故事板中 我设置了数据源和委托 我在这里收到错误 ViewController 不符合协议 UITableViewDataSource cla
  • SqlProfileProvider - 您可以在项目中使用 Profile.GetProfile() 吗?

    我正在尝试在应用程序中使用 SqlProfileProvider 但似乎无法按照我想要的方式使用它 我希望能够简单地调用这样的配置文件 Profile p Profile GetProfile naspinski p Organizatio
  • 在 Visual Studio 2010 中调试 exe

    有没有办法使用 Visual Studio 2010 通过 Shift 双击运行 exe 来调试外部 exe 通常 要在特殊模式下运行应用程序 我们必须按 Shift 键并双击 exe 但我在启动时遇到了一个错误 我想我需要添加一个命令行参
  • 如何替换cmd.exe中的百分号字符?

    在 Windows 命令提示符中 我尝试替换中的空格set string Hello World用字符串 20 天真地尝试像这样使用字符串文字 20 set string string 20 结果是HelloWorld20 尝试使用转义字符
  • Java Swing 菜单速度缓慢的解决方法

    在 Java 7 和 8 中 Swing 菜单中存在一个错误 导致在其他 X11 应用程序正在运行时通过 X11 远程运行应用程序时速度缓慢 这个问题是在 Java 7 中引入的 并且从未得到修复 有人对解决方法有任何建议吗 使用 nxcl
  • 在python3 asyncio中使用串口

    我正在尝试 但到目前为止 未能使用 python asyncio 访问串行端口 我真的很感激关于在简单的 fd 上使用新的 python 异步框架的任何提示 Cheers James 这是一个使用的工作示例pyserial异步 https
  • C# 中 CreateObject 的等效代码

    我有一个VB6代码 谁能告诉我怎么写C 这段代码如下 Set Amibroker CreateObject Broker Application Set STOCK Amibroker Stocks Add ticker Set quote
  • 循环提示输入另一个密码时出现问题

    我需要一些关于 EXPECT 脚本的帮助 我正在尝试在访问大量主机之前自动登录 并在用户错误输入密码时进行处理 我首先获取用户名和密码 然后针对特定主机对其进行验证 如果密码无效 我想循环并再次询问用户名和密码 我正在尝试这个 省略前面几行
  • 当我运行代码时,我得到一个奇怪的输出(在问题中列出)。我该怎么办? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 from turtle import Turtle Screen timmy the turtle Turtle timmy the tur
  • 合并两个具有不同列数的表

    我有两张表 表 A 和表 B 它们具有不同数量的列 假设表 A 有更多列 如何合并这两个表并为表 B 没有的列获取 null 对于具有较少列的表 将额外的列添加为空 例如 Select Col1 Col2 Col3 Col4 Col5 fr
  • Hilt ViewModel 没有零参数构造函数

    Cannot create an instance of class com comp app winners WinnersViewModel Caused by java lang InstantiationException java
  • 如何收到从 SD 卡删除任何文件的通知

    我想创建Dumpster https play google com store apps details id com baloota dumpster像应用程序一样 为此我希望在用户删除任何文件时收到通知 以便我可以将其保存到我的应用程
  • 如何使用多个数组创建 JSON 对象?

    我以前从未使用过 JSON 所以我不熟悉它的语法 目前我有多个包含不同数据的数组 我想创建一个 JSON 对象 其中包含多个数组 每个数组都有几条数据 E g 一个名为 cars 的对象 包含多个数组 每个数组对应不同品牌的汽车 每个数组中
  • ASP.NET Core MVC 应用程序中的 Microsoft LocalReport (rdl)

    我正在使用 ASP NET Core 2 1 MVC 运行一个项目 在我们公司 我们确实使用 SQL Report Builder rdlc 和 rdl 文件 完成了大量工作 因此 我们希望在 ASP NET Core MVC Web 应用
  • 如果弹出窗口

    有没有办法判断当前窗口是否是弹出窗口 这就是我现在所拥有的 但由于某种原因它不起作用 我试图确保某些页面仅显示在弹出窗口中 if opener window location error php 即使窗口没有弹出 opener 的值也是 o
  • ColdFusion 在字符串中构造数据库查询时添加额外的引号

    我正在 ColdFusion 中编码 但试图留在 cfscript 中 所以我有一个函数允许我传入一个查询来运行它