mysqli_real_escape_string 如何无法阻止 SQL 注入? [复制]

2024-02-22

首先,我知道人们想要使用存储过程,以便他们重用查询并处理转义。然而,我读到很多开发人员都说mysqli_real_escape_string不能100%防止SQL注入。有人可以提供一个例子吗?

根据我对这个主题的有限知识,我会说mysqli_real_escape_string would always对于字符串来说没问题,但对于数值来说,除非你检查数字是 int、float、double 等,否则你可能会被抓到。

编辑:我忘记添加一些关键内容:假设字符集是 UTF8 并且已相应地调用 mysqli_set_charset 。我见过的唯一注入依赖于少数字符集(没有一个是 UTF8)。


只要你在使用mysqli_set_charset()设置客户端编码,以及mysqli_real_escape_string()用于格式化仅字符串,这是绝对安全的。

但是,如果您的问题暗示在应用程序代码中使用此函数,而不是基于占位符的查询的幕后处理或至少以 PDO 的形式进行处理quote()-like 函数(它会转义and立即引用)这是直接注入的方式。

问题不是函数本身,而是它的使用方式:

  • 因为它只part所需的格式,人们很容易忘记另一部分并陷入麻烦
  • 或者甚至它很容易被误用,格式化的不是字符串而是另一个文字,而转义根本没有任何好处。
  • 其次,当它在应用程序代码中正确使用时,它的使用会变得不一致或偶尔发生,因为没有办法强制开发人员正确无误地格式化每个文字。这又可能导致不准确和注入。

这就是为什么你必须始终使用占位符表示查询中的数据(而 mysqli_real_escape_string 可以用来处理这个占位符)

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

mysqli_real_escape_string 如何无法阻止 SQL 注入? [复制] 的相关文章

  • mysql:谁阿米?

    有没有whoami类似mysql中的函数 我正在从远程主机连接到 mysql 命令行 我不确定我的 IP 地址是否解析为域名 我想看到类似的东西 mysql gt whoami User Host username resolved hos
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • 如何在 WordPress 中添加 PHP 页面链接到我的页脚

    我创建了一个自定义 PHP 页面名称 privacy policy 名称为privacy php 我如何链接页脚中的页面 以便当有人点击隐私链接时页面打开 我已在此页面中调用页眉和页脚 这个怎么做 谢谢 In the wp content
  • Laravel 5.1 - 获取当前路线

    我正在开发一个为每个视图自动获取资源 css js 的函数 所以它工作得很好 让我们说 http mywebsite com displayitems http mywebsite com displayitems home about 等
  • 如何在我的网站上获取用户的国旗

    我想在我的网站上显示用户 访问者的国旗 我使用不同的技术 如 php jsp 和简单的 html 所以我想要一个代码 通过放置在我的网站上 访问者可以看到它 并且它应该在所有平台上运行 简而言之 我想要国家检测 API 如果有人能帮助我 我
  • 将 WordPress 的登录/注册页面重定向到自定义登录/注册页面

    我有一个网站 有一个用户系统 我想将 WordPress 的用户系统集成到该网站的用户系统中 但我仍然想使用该网站的注册 登录页面 我不希望任何人能够使用 Wordpress 的登录或注册表单登录或注册 相反 当他们尝试访问 Wordpre
  • htmlspecialchars() 期望参数 1 为字符串,Laravel 中给出的数组

    我的程序中出现了这个错误Laravel刀片模板 htmlspecialchars 期望参数 1 为字符串 给定数组 我尝试将数组转换为刀片模板中的字符串 这是代码 Where silderImageDataArray是这里存储的变量和值 这
  • 使用返回哈希数组的外部 PHP SOAP Web 服务的 C# .NET 客户端存在问题

    我正在编写一个需要调用外部 Web 服务的 NET Web 应用程序 我提供的文档包括 PHP 代码示例 我可以使用提供给我的 WSDL 地址在 VS2010 中成功创建 Web 引用 并且使用 fiddler 我可以看到正在发送和接收预期
  • Amazon ec2 无法在 ios 上发送推送通知

    我在 Amazon ec2 php 7 中使用以下 php 代码
  • 在 .NET C# 项目中使用 PHP

    有谁知道是否可以 以及是否有任何复杂性 在 NET C 项目中使用 PHP 语言 我知道 VB 和 C 现在可以混合在解决方案中 所以我想知道 由于 IIS 现在能够运行 PHP 您是否可以将它们组合成一个单一的运行时 显然 提出这个问题的
  • php.ini 在哪里? [复制]

    这个问题在这里已经有答案了 我运行 phpinfo 它说它在 C Windows 中 但它不在那里 它不在 php 文件夹中 我系统搜索了一下 没有找到 它藏在哪里 运行此代码 我假设您的 php 正在运行 您无法仅找到 php ini 文
  • MySQL Spatial CONTAINS 显示错误结果

    我的 MySQL 空间搜索有一个奇怪的行为 我在 GEOM 字段 葡萄牙边界 中创建了一个多边形 然后我尝试在内部找到一个点 发现没问题 下一次尝试是查找多边形外部的点 但查询仍返回 1 个找到的行 请帮忙 我做错了什么 为什么它会找到多边
  • 如何在 Centos 7 上手动安装 PHP-Zts

    我想安装 pthreads 当我尝试安装时 我会收到此错误 checking for ZTS no configure error pthreads requires ZTS please re compile PHP with ZTS e
  • MySQL max_allowed_pa​​cket 参数有什么问题?

    我需要增加 max allowed pa cket 参数 以适应一些理论上非常大的项目 如果我将此参数设置为 10M 那么与设置为 1M 或 4M 相比 我要支付什么价格 如果有的话 感谢您的任何意见 托马斯 我找到了这个解释 http w
  • 如何使用 phpStorm 从远程服务器删除文件

    所以我已经将远程服务器添加到 phpStrom 中 我可以在那里更改文件 但是 如果我删除文件 它们只会从我的计算机上消失 而不是在服务器上消失 如何使用 phpStorm 从远程服务器删除文件 To manually从远程位置删除文件 使
  • 如何使用默认约束为mysql中的列创建随机数?

    DEFAULT 约束在接受字符串或当前日期值方面没有问题 我需要的是一个约束 每次创建实体时都会创建一个随机的 4 位数字 我尝试了以下代码 但它返回语法错误 ALTER TABLE client number ADD 代码 INT 4 D
  • PHP:switch 与 if [重复]

    这个问题在这里已经有答案了 哪种形式更有效率 这个 switch var case 1 break case 2 break 或者这个 if var 1 elseif var 2 在性能方面 性能方面完全无关 As PHPBench htt
  • 自动递增和最后插入 ID

    我在用着AUTO INCREMENT我想获取插入行的 ID 以便我可以使用更新另一个表ID作为两个表之间的公共字段 我明白LAST INSERT ID会排在最后ID 然而 我担心的是 数据库被许多用户同时访问 因此 可能有另一个进程访问该表
  • PHP 中 C# 的空合并运算符 (??)

    PHP 中是否有三元运算符或类似的操作符 of C 在 C 中是干净且简短的 但在 PHP 中你必须执行以下操作 This is absolutely okay except that REQUEST test is kind of red
  • 如何找到数组中的最小数字并返回该数组的主索引?

    我有一个如下所示的数组 我想找到 diff 索引中数字最小的数组 所以在这种情况下 我想取回数组 7 我需要的只是数组编号 即 7 而不是任何其他信息 我知道我可以使用 array column 轻松找到最小的数字 但如何返回整个数组索引

随机推荐

  • 如何将选定的 HTML 转换为 Json?

    我想将部分 html 代码作为文件保存到 json 中 然后回顾 html 代码进行编辑 知道我该怎么做吗 div div div div
  • 如何将 c++filt 与 llvm-cov 报告一起使用?

    我正在尝试将 demangler 与 llvm cov 报告工具一起使用 以下是我正在运行的命令 llvm cov report path to executable instr profile path to default profda
  • 根据分组 ggplot2 条形的着色和阴影/纹理[重复]

    这个问题在这里已经有答案了 我正在尝试制作一个条形图 就像下面的示例数据和脚本一样 对 4 个个体在治疗前后进行测量 抱歉 我没有足够的声誉来上传示例图片 我想用某种颜色绘制个体 例如汤姆为绿色 弗雷德红色等 但对于代表治疗的条形 我想在颜
  • 我是否应该尽可能在 C++11 中将“const int”替换为“constexpr int”?

    你会替换吗 const int one 1 const int two 2 有了这个 constexpr int one 1 constexpr int two 2 我的理解是否正确 两个块在语义上是相同的 并且目前只是一个品味问题 另一方
  • 如何通过 C# 方法使用 IronRuby 块

    我正在使用 IronRuby 并尝试找出如何通过 C 方法使用块 这是我尝试模拟的基本 Ruby 代码 def BlockTest result yield hello puts result end BlockTest x x world
  • Listview/DetailsView:隐藏空字段

    我想这是一个很常见的问题 但到目前为止我还没有找到一个优雅的解决方案 我有很多实例 其中有绑定到 SQL Server SPproc 的 ListView 或 DetailsView 控件 我遇到的问题是 在很多情况下 当列为空时 我想在
  • 如何使用 CSS 旋转导航栏中的元素?

    我试图让我的导航栏在我的 WordPress 网站中旋转 但无法使其居中并靠近屏幕左侧 这是我现在得到的屏幕截图 这是我正在使用的 CSS 代码 nav standard position fixed webkit transform ro
  • Hyperledger Composer Web 应用程序用户身份验证

    我已经使用 Hyperledger Composer 创建了一个业务网络 并且创建了一个简单的 Web 应用程序 用于添加参与者并使用 Angular 通过 Web 界面提交交易 另外 我已经使用护照启用了 REST 服务器的身份验证 并且
  • 在 Access 中创建 Outlook 收件箱电子邮件表

    UPDATE 下面的当前代码符合推荐的 SQL 构造 SqlString 中的错误 运行时错误 3011 Microsoft Access 数据库引擎找不到对象 请确保该对象存在 并且正确拼写其名称和路径名 如果 不是本地对象 请检查您的网
  • Tweepy OpenSSL.SSL.WantReadError

    Python 3 6 我使用 tweepy 的 Streamer 来获取推文 效果很好 但有时 如果我让它打开超过 24 小时 就会出现此错误 Traceback most recent call last File C ProgramDa
  • C++ 中的 bool 是什么?

    我遇到了一些非常有趣的代码 这让我想知道 bool 是什么 我一直认为它是原始类型 例如 int char 或 long 但今天 我看到了这样的东西 void boolPtrTest bool thisBool true boolPtrHe
  • sas中的分组依据

    我有以下数据集作为输入 ID 1 2 2 3 4 4 4 5 并需要一个新的数据集 如下所示 ID count of ID 1 1 2 2 3 1 4 3 5 1 您能告诉我如何在 SAS 中执行此操作而不使用 PROC SQL 吗 或者
  • 为我的 WCF 服务启用 SSL

    我有一个在开发中使用 basicHttpBinding 的 WCF 服务 现在在产品中我们想要使用 SSL 我必须进行哪些更改才能强制仅使用 SSL 连接 MSDN 上的此页面解释了 WCF 绑定安全性 http msdn microsof
  • 定义API时我应该返回CompletableFuture还是Future?

    在Java 8中 接口或抽象类定义返回的API更好吗 CompletableFuture而不是返回Future 考虑到转换很难看Future to CompletableFuture https stackoverflow com ques
  • 向 pandas 绘图添加小刻度

    我有以下代码 from pandas datareader import data as web import matplotlib pyplot as plt fig ax1 ax2 plt subplots 2 1 df web Dat
  • 如果互联网或信号中断,如何捕获异常

    我正在使用媒体播放器和流音频 我想知道如果互联网或信号中断并且无法再传输音频 捕获异常的最佳方法是什么 下面是我到目前为止所做的代码 正如您所看到的 我用相同的消息抛出所有异常 private class taskDoSomething e
  • Parse.com Javascript SDK 使用 include,但不起作用

    我正在尝试从名为的表中获取数据Book 里面Book有一个Pointer
  • 在网络调用期间显示 ProgressDialog,直到完成

    I am very很沮丧 因为我一直在等待网络调用时尝试实现一个超级简单的加载轮 我已经搜索并阅读了几十个这样的问题 我只是觉得我一定错过了一些东西 除非没有人真正做我想做的事情 我尝试过AsyncTask路线 但这不是我想要的 我还要说的
  • axios 在本机反应中给出 [AxiosError: Network Error]

    我是 React Native 的新手 我正在尝试使用 React Native 中的 axios 提交 api 但我 getiign AxiosError 网络错误 我不知道这是什么或如何解决这个问题 function getdata c
  • mysqli_real_escape_string 如何无法阻止 SQL 注入? [复制]

    这个问题在这里已经有答案了 首先 我知道人们想要使用存储过程 以便他们重用查询并处理转义 然而 我读到很多开发人员都说mysqli real escape string不能100 防止SQL注入 有人可以提供一个例子吗 根据我对这个主题的有