sql-injection相关内容

此代码是否可以防止 SQL 注入?

背景 我已签约分析现有的数据提供程序,但我知道以下代码有问题;但为了指出它有多糟糕,我需要证明它容易受到 SQL 注入的影响. 问题 什么“钥匙"?参数可能会破坏 PrepareString 函数并允许我执行 DROP 语句? 代码片段 公共共享函数 GetRecord(ByVal Key As String) As RecordDim Sql 作为新的 StringBu ..
发布时间:2021-12-06 10:22:18 C#/.NET

如何避免 SQL 注入攻击?

昨天我和一个开发人员交谈,他提到了一些关于限制数据库字段插入的事情,比如像 -- 这样的字符串(减号). 在同一类型中,我知道这是一种转义 HTML 字符(如 等)的好方法,而不是 --.这是真的?我需要担心--、++吗?它更像是神话还是旧事? 更新 非常感谢所有的答案,这样很容易理解,因为我对这一切都很陌生.好吧,更具体地说,在这种情况下,我们的讨论是关于我们正在开发的 ..
发布时间:2021-12-05 12:38:02 其他开发

非网络 SQL 注入

似乎对 SQL 注入攻击有些歇斯底里.最近,这里 如何根据另一字段中的查找值返回一个字段中的值 如果我在 Excel 中创建一个连接到 Access 数据库的宏,我真的需要担心 SQL 注入吗?它不在网络上,它在我的办公室中使用(你们还记得台式机吗?).我不担心我的同事会破坏我.如果他们足够聪明来进行 SQL 注入,那么他们是否足够聪明来破解我的加载项密码并更改代码? 解决方案 ..
发布时间:2021-12-02 22:21:06 其他开发

避免没有参数的SQL注入

我们正在这里进行另一场关于在我们的代码中使用参数化 sql 查询的讨论.我们有两个方面的讨论:我和其他一些人说我们应该始终使用参数来防止 sql 注入,而其他人则认为没有必要.相反,他们希望在所有字符串中用两个撇号替换单个撇号,以避免 sql 注入.我们的数据库都运行 Sql Server 2005 或 2008,我们的代码库运行在 .NET framework 2.0 上. 让我举一个简单 ..
发布时间:2021-12-02 09:22:57 C#/.NET

参数真的足以防止 Sql 注入吗?

我一直在向我的同事和这里宣讲在 SQL 查询中使用参数的好处,尤其是在 .NET 应用程序中.我什至向他们保证对 SQL 注入攻击具有免疫力. 但我开始怀疑这是否真的如此.是否有任何已知的 SQL 注入攻击可以成功针对参数化查询?例如,您能否发送一个导致服务器缓冲区溢出的字符串? 当然还有其他考虑因素要确保 Web 应用程序是安全的(例如清理用户输入和所有这些东西),但现在我正在考虑 ..
发布时间:2021-12-01 20:14:12 C#/.NET

通过addslashes() 进行SQL 注入的示例?

在 PHP 中,我知道 mysql_real_escape 比使用 addslashes 安全得多.但是,我找不到 addslashes 会让 SQL 注入发生的例子. 谁能举出一些例子? 解决方案 好吧,这是您想要的文章. 基本上,攻击的工作方式是让 addslashes() 在多字节字符的中间放置一个反斜杠,这样反斜杠就失去了作为有效多字节序列的一部分的意义. 文章中 ..
发布时间:2021-12-01 20:11:07 PHP

准备好的语句如何防止 SQL 注入攻击?

预制语句如何帮助我们防止SQL 注入 攻击? 维基百科说: 准备好的语句可以抵御 SQL 注入,因为参数值,稍后使用不同的协议,不需要正确转义.如果原来的说法模板不是从外部输入派生的,SQL 注入不能发生. 我不太清楚原因.用简单的英语和一些例子做一个简单的解释是什么? 解决方案 想法很简单——查询和数据分别发送到数据库服务器. 仅此而已. SQL 注入问题的根源 ..
发布时间:2021-12-01 19:20:08 其他开发

我什么时候应该使用准备好的语句?

最初我使用mysql_connect 和mysql_query 来做事.然后我学习了 SQL 注入,所以我正在尝试学习如何使用准备好的语句.我了解 PDO 类的准备和执行功能如何有助于防止 SQL 注入. 仅当用户输入存储到数据库时才需要准备好的语句吗?仍然使用 mysql_num_rows 是否可以,因为我并没有真正冒着使用此功能被黑客入侵的风险?还是使用准备好的语句来执行此操作更安全?我 ..
发布时间:2021-12-01 10:56:56 PHP

htmlspecialchars 和 mysql_real_escape_string 是否可以防止我的 PHP 代码被注入?

今天早些时候有人问了一个关于 网络应用中的输入验证策略. 在撰写本文时,最佳答案建议在 PHP 中仅使用 htmlspecialchars 和 mysql_real_escape_string. 我的问题是:这总是足够的吗?还有更多我们应该知道的吗?这些功能在哪里分解? 解决方案 当涉及到数据库查询时,总是尝试使用准备好的参数化查询.mysqli 和 PDO 库支持这一点.这比 ..
发布时间:2021-12-01 10:53:56 PHP

在 PHP 中向数据库提交字符串时,我应该使用 htmlspecialchars() 还是使用正则表达式处理非法字符?

我正在处理一个表单,用户可以在要提交给数据库的字符串中使用非法/特殊字符.我想转义/否定字符串中的这些字符,并且一直在使用 htmlspecialchars().但是,有没有更好/更快的方法? 解决方案 如果您将此数据提交到数据库,请查看您的数据库的转义函数. 也就是说,对于 MySQL,有 mysql_real_escape_string. 这些转义函数会处理任何可能是恶意的 ..
发布时间:2021-12-01 10:52:33 PHP

如何使用 PHP 清理用户输入?

是否有一个包罗万象的功能可以很好地清理用户输入以应对 SQL 注入和 XSS 攻击,同时仍然允许某些类型的 HTML 标签? 解决方案 认为可以过滤用户输入是一个常见的误解.PHP 甚至有一个(现已弃用)“功能",称为 magic-quotes,建立在这个想法之上.这是胡说八道.忘记过滤(或清洁,或任何人们所说的). 为了避免出现问题,您应该做的很简单:每当您将一段数据嵌入到外部代码 ..
发布时间:2021-12-01 10:11:08 PHP

什么是防止 SQL 注入的好方法?

我必须为我的 OJT 公司编写一个应用程序管理系统.前端将使用 C# 完成,后端将使用 SQL. 现在我从来没有做过这个范围的项目;在学校,我们只有关于 SQL 的基本课程.不知何故,我们的老师完全没有讨论 SQL 注入,这是我现在在网上阅读有关它才接触到的东西. 无论如何,我的问题是:如何防止 C# 中的 SQL 注入?我模糊地认为可以通过正确屏蔽应用程序的文本字段来完成,以便它只接 ..
发布时间:2021-12-01 08:56:33 C#/.NET

经典的 ASP SQL 注入保护

对于经典的 asp 应用程序来说,防止 sql 注入的强大方法是什么? 仅供参考,我将它与访问数据库一起使用.(我没有写应用程序) 解决方案 存储过程和/或准备好的语句: https://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks 我可以保护吗通过 ..
发布时间:2021-11-29 09:13:06 其他开发

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

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

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

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

什么是函数 mysql_real_escape_string 的 PDO 等价物?

我正在将我的代码从使用 mysql_* 修改为 PDO.在我的代码中,我有 mysql_real_escape_string().这在 PDO 中的等价物是什么? 解决方案 好吧,不,没有! 技术上有 PDO::quote() 但它很少被使用,并且不等同于 mysql_real_escape_string() 没错!如果您已经按照使用 prepared statements,然 ..
发布时间:2021-11-20 22:50:22 PHP

MySQL 准备好的语句

我只是想知道是否有一种方法可以在 MySQL 中使用某种形式的准备好的语句,这样我就不必转义所有输入,也不必将所有文件从 MySQL 切换到 MySQLi.我真的不相信转义函数,所以如果有任何可以在常规 MySQL 中工作的替代方法,那就太好了. 解决方案 使用 PDO (PHP 数据对象) 连接到您的 MySQL 数据库.此方法将确保所有数据库输入将始终被视为文本字符串,您将永远不必进行 ..
发布时间:2021-11-20 22:21:38 PHP