sql-injection相关内容

使用 sql 转义的动态 mysql 查询与准备好的语句一样安全吗?

我有一个应用程序,它可以通过将动态 mysql 查询与 mysql (mysqli) 真实转义字符串结合使用而受益匪浅.如果我通过 mysql real escape 运行从用户那里收到的所有数据,它会和使用 mysql 准备好的语句一样安全吗? 解决方案 绝对不会. 虽然标题中的问题含糊不清,可以被解释为“动态 mysql 查询是否具有每个部分格式正确...",因此得到肯定的回答, ..
发布时间:2021-11-20 22:12:08 数据库

PDO 准备好的语句有多安全

不久前开始使用 PDO 准备好的语句,据我所知,它为您完成了所有的转义/安全. 例如,假设 $_POST['title'] 是一个表单字段. $title = $_POST['title'];$query = "插入 blog(userID, title) 值 (?, ?)"$st = $sql->prepare($query);$st->bindParam(1, $_SESSION['u ..
发布时间:2021-11-20 21:52:50 PHP

如果我使用下拉菜单,我是否必须防止 SQL 注入?

我知道您永远不应该相信来自表单的用户输入,主要是由于 SQL 注入的可能性. 但是,这是否也适用于唯一输入来自下拉列表的表单(见下文)? 我将 $_POST['size'] 保存到一个会话中,然后在整个站点中使用它来查询各种数据库(使用 mysqli Select 查询) 并且任何 SQL 注入肯定会伤害(可能会丢弃)它们. 没有用于键入用户输入来查询数据库的区域,只有下拉列表. ..
发布时间:2021-11-20 21:52:03 PHP

mysql_real_escape_string 的缺点?

我在这里看到一些人说使用 mysql_real_escape_string 连接查询不会保护您(完全)免受 SQL 注入攻击. 但是,我还没有看到一个输入示例来说明mysql_real_escape_string 无法保护您免受攻击.大多数示例忘记了 mysql_query 仅限于一个查询,并且错误地使用了 mysql_real_escape_string. 我能想到的唯一例子如下: ..
发布时间:2021-11-20 21:49:34 PHP

防止 Java 程序中的 SQL 注入攻击

我必须在我的 java 程序中添加一条语句来更新数据库表: 字符串插入 ="INSERT INTO customer(name,address,email) VALUES('" + name + "','" + addre + "','" + email + "');"; 我听说这可以通过 SQL 注入来利用,例如: DROP TABLE 客户; 我的程序有一个 Java GUI,所有姓名 ..
发布时间:2021-11-20 21:42:55 Java开发

为什么使用 mysql 准备好的语句比使用常见的转义函数更安全?

另一个问题中的评论如下: "说到数据库查询,总是尝试使用准备好的参数化查询.mysqli 和PDO 库支持这一点.这是比使用转义无限安全功能如mysql_real_escape_string." 来源 那么,我想问的是:为什么准备好的参数化查询更安全? 解决方案 我认为这里的人们缺少的一个重要点是,对于支持参数化查询的数据库,无需担心“转义".数据库引擎不会将绑定的变量组 ..
发布时间:2021-11-20 21:37:32 PHP

Python:连接到 MySQL 和执行查询的最佳实践和最安全的方式

在 MySQL 上运行查询的最安全方法是什么?我知道 MySQL 和 SQL 注入所涉及的危险. 但是,我不知道应该如何运行查询以防止注入其他用户(网络客户端)可以操作的变量.我曾经写过自己的转义函数,但显然这是“未完成". 我应该使用什么以及我应该如何使用它通过 python 在 MySQL 数据库上安全地查询和插入,而不会冒 MySQL 注入的风险? 解决方案 为了避免注入 ..
发布时间:2021-11-20 21:36:22 数据库

mysql_real_escape_string() 坏了吗?

有些人认为 mysql_real_escape_string() 有一些缺陷,即使正确使用也无法保护您的查询. 带来一些僵化文章作为证据. 那么,问题是:mysql[i]_real escape_string() 是完全不能接受的吗? 或者是否仍然可以使用此函数来创建您自己的准备语句? 请提供验证码. 解决方案 来自 MySQL的C API函数mysql_real_esca ..
发布时间:2021-11-20 21:35:17 PHP

ADOdb 中的 SQL 注入和一般网站安全

我已经读了很多书,但仍然没有 100% 理解某些 SQL 注入是如何发生的! 我想从那些知道的人那里看到基于我的示例的 SQL 注入的具体示例,以便它可以被复制、测试和修复.我曾尝试 SQL 注入我的代码,但没有成功,所以我希望有人能证明我不是这样! 1.SQL 注入只能通过 POST 或 GET 方法发生,这意味着在网站上它应该是发布表单,例如“注册或搜索"或“search.php? ..
发布时间:2021-11-20 21:30:11 PHP

防止 Node.js 中的 SQL 注入

是否有可能像 PHP 具有防止 SQL 注入的预处理语句那样防止 Node.js 中的 SQL 注入(最好使用模块). 如果是这样,怎么办?如果没有,有哪些示例可以绕过我提供的代码(见下文). 一些背景: 我正在使用 制作一个包含 Node.js + MySql 的后端堆栈的 Web 应用程序node-mysql 模块.从可用性的角度来看,该模块很棒,但它还没有实现类似于 PHP ..
发布时间:2021-11-20 21:19:10 数据库

参考:使用 MySQL 扩展的完美代码示例是什么?

这是为了创建一个社区学习资源.我们的目标是让好的代码示例不会重复在复制/粘贴的 PHP 代码中经常出现的可怕错误.我已要求将其设为社区 Wiki. 这不是一场编码竞赛.这不是寻找最快或最紧凑的查询方式 - 而是提供一个很好的、可读的参考,尤其是对于新手. 每天都有大量问题涌入,其中包含非常糟糕的代码片段,这些问题使用 Stack Overflow 上的 mysql_* 函数系列.虽然通 ..
发布时间:2021-11-20 21:07:06 PHP

如何防止 PHP 中的 SQL 注入?

如果用户输入未经修改就插入到 SQL 查询中,那么应用程序很容易受到SQL 注入的攻击,就像在下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO `table`(`column`) VALUES('$unsafe_variable')"); 那是因为用户可以输入类似value');DROP TABLE ..
发布时间:2021-11-20 21:01:23 PHP

PreparedStatement 如何避免或防止 SQL 注入?

我知道 PreparedStatements 避免/防止 SQL 注入.它是如何做到的?使用 PreparedStatements 构造的最终表单查询是字符串还是其他形式? 解决方案 SQL 注入的问题在于,用户输入被用作 SQL 语句的一部分.通过使用准备好的语句,您可以强制将用户输入作为参数的内容进行处理(而不是作为 SQL 命令的一部分). 但是,如果您不使用用户输入作为准备好 ..
发布时间:2021-11-19 22:57:11 Java开发

Java - 转义字符串以防止 SQL 注入

我正在尝试在 Java 中放置一些反 sql 注入,并且发现使用“replaceAll"字符串函数非常困难.最终我需要一个函数将任何现有的 \ 转换为 \\,任何 " 到 \",任何' 到 \',以及任何 \n 到 \\n 以便当字符串被 MySQL 评估时SQL 注入将被阻止. 我已经添加了一些我正在使用的代码,但函数中的所有 \\\\\\\\\\ 都让我看傻了眼.如果有人碰巧有这样的例子 ..
发布时间:2021-11-19 22:48:03 Java开发

SQL 注入 - Web 服务器上的全局过滤器

是否可以过滤包含 SQL 注入值的 Web 请求? 解决方案 有 Web 应用程序防火墙或数据库防火墙尝试执行此操作. 您必须定义接受输入的模式,或者定义允许的文字输入列表. 其中一些产品的工作原理是让您通过在您知道没有 SQL 注入攻击发生的时间段运行您的应用来“训练"它们,并记录已知合法的 SQL 查询.然后您关闭训练模式,随后防火墙将阻止任何与其允许的输入列表不匹配的内容 ..
发布时间:2021-09-22 19:47:38 其他开发

如何暴露坏代码的弱点

您好,我一再被告知不要在我的 sql 代码中使用连接,以免发生sql 注入攻击.但是我已经尝试破解我自己的代码,没有成功.甚至可以通过窗口形式sql-inject吗?请在下面找到相关的代码段: SqlConnection con = new SqlConnection(“数据源=PV10\\LOCALSERVER;初始目录=dbtest;集成安全=真");con.Open();SqlComman ..
发布时间:2021-08-23 18:44:07 C#/.NET

在此 PHP 代码中防止 SQL 注入

我有以下写入 PostgreSQL 数据库的函数.我需要使其免受 SQL 注入的影响,但我不知道该怎么做. 从 pg_query_params 组装的查询部分不会被注入(或者我被告知),但是组装查询的另一部分通过 PHP 的字符串连接 .显然容易受到注射. 私有函数 setItem($table, $id, $field, $itemId, $fieldValue){$_1 = $item ..
发布时间:2021-08-23 18:44:04 PHP