问题标签 [sql-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5459 浏览

sql - SQL 存储过程安全吗?

他们是否比做类似的事情更不容易受到 SQL 注入的影响mysql_query("SELECT important_data FROM users WHERE password = $password")

0 投票
2 回答
556 浏览

perl - 防止 SQL 表名注入 - 多远?

我正在开发一个相对较小的应用程序来与 PostgreSQL 对话,并希望获得一些反馈,说明在防止 SQL 注入方面还有多远。

该应用程序在 Perl 中,不使用任何 ORM 模块(仅 DBI)。SQL 语句是用占位符以典型方式构造的:

插入表名的原因是应用程序必须对多个表执行相同的操作,所有表都有一个列“foo”。

使用 ?占位符可防止大多数简单的 SQL 注入攻击。我的问题是关于表名,你不能使用占位符。该表来自配置文件,但应用程序支持 --configfile 开关以使用备用配置文件。

数据库凭据存储在配置文件中。因此,如果攻击者可以使用 $cfg->{tablename} 替换为恶意内容的配置文件(或替换默认文件),则可能会“诱骗”应用程序运行恶意代码。

对于攻击者来说,他们必须已经拥有有效的数据库凭据,否则应用程序将无法连接。如果他们有凭据,那么他们可以使用 DBI 编写自己的代码或使用 psql cli 执行恶意操作。

我看到了两种可能的方法来防止这种情况:

  • 切换到 ORM,在这种情况下,我会按照 $orm->get_class_for_table($cfg->{tablename}
  • 在准备 SQL 语句之前使用正则表达式清理表名
  • 使用 $dbh->quote_identifier()

显然第二种方式是“便宜又快乐”的方式。但是鉴于上面关于凭据的声明,这些方法中的任何一种真的有必要吗?在迫使攻击者只使用备用攻击向量(与实际阻止攻击的努力相反?

0 投票
3 回答
239 浏览

ruby-on-rails - 允许用户输入代码示例的最危险的方法是什么?

我正在实现一个 Rails 应用程序,用户可以在其中存储代码片段以供以后参考。我打算使用 Markdown 进行文本输入,并且可能会使用wmd markdown editor。(正是 Stackoverflow 使用的。)

我有点担心人们在编辑框中输入代码的想法。据我了解,输入 SQL 可能会破坏我的数据库,或者输入稍后会运行并造成恶作剧的 JavaScript 存在危险。

通常,Rails 具有防止这种情况发生的功能,但我在这里是否处于特殊情况,因为我的用户会被鼓励输入代码片段?

我应该注意哪些额外的预防措施?

0 投票
2 回答
4287 浏览

sql - LIKE 在动态查询中

我想like在动态参数化查询中使用关键字。我想保护我的查询免受 SQL 注入,所以我不想传递值,而是想在执行查询时传递我的条件,

有没有办法我可以做到这一点?

这是我的动态查询字符串。我不想在这里传递价值。

0 投票
7 回答
8765 浏览

c# - 我可以从 SELECT 语句中获得 SQL 注入攻击吗?

2个问题实际上:

我知道我必须尽可能多地使用存储过程,但我想知道以下内容。

答:我可以从 SELECT 语句(例如 (Select * from MyTable) )中获得 SQL 注入攻击吗?

B: 另外,当我在 ASP.NET 中使用 SQLDataSource 时,我会受到 SQL 注入攻击吗?

0 投票
3 回答
6088 浏览

java - 使用多个查询时 Java 和 MySQL 中的 SQL 注入

作为 INSERT 语句的一部分,我有一个带有 SQL 注入的 Web 应用程序。它看起来像这样:

我可以插入常规的多查询注入,');truncate table1;--但由于使用了 Java + MySQL,它不允许堆叠多个查询,因此上述注入会导致 MySQL 出错,并且第二个查询永远不会执行。

所以基本上,在上述架构中,从这种注入中可以实现的所有目标似乎都是注入“垃圾数据”,这在没有注入的情况下也是可能的。

还有更多的技术,例如 using load_file(),但这仍然不允许我将数据库操作到我正在寻找的程度。

我在这里错过了什么吗?有没有其他方法可以使用这种注入来获得对数据库的控制?

0 投票
3 回答
555 浏览

vb.net - 调用存储过程的 Web 服务需要多少清理?

我正在 VB.Net 中构建一系列 Web 服务

每个 Web 服务都采用多个字符串值,执行一些验证/处理,然后使用 Linq to SQL 调用存储过程。一些字符串包含存储在数据库中的用户数据:

从 Web 服务传递的这些字符串值被转义以捕获单引号字符、分号和各种括号类型。

我正在使用 datacontext.spname(parameter1, parameter2) 方法调用 SP。

目的是确保 Web 服务尽可能具有弹性,同时仍保持高性能。

我在防止 SQL 注入攻击方面做得足够吗?

0 投票
3 回答
1458 浏览

stored-procedures - SQL 注入 - 存储过程调用没有危险(在 iSeries 上)?

我已经进行了一些搜索,但我有一个关于 SQL 注入的具体问题,并希望我能得到一些输入,因为我相信我可能在字段数据清理等方面得到了错误的结果:-

我有一个在 iSeries 上调用存储过程的 java 程序。存储过程在幕后有 CL/RPG 代码。存储过程通过参数调用,数据来自网页。例如,调用如下所示:-

我是否需要担心通过网站输入'field1Value'等的任何字符,或者因为它是一个存储过程调用,不存在sql注入的危险?这是否取决于幕后的 RPG 程序是否在其自己的 SQL 语句中使用“field1Value”作为该处理的一部分?

传递到过程中的字段长度是固定长度的,因此我们不能,例如,将“狡猾”字符转换为它们的 html 等价物。

感谢任何(我预计这可能是一个愚蠢的问题!)对此的反馈(不一定是 iSeries 特定的)。

0 投票
6 回答
2926 浏览

asp.net - 对 ASP 注册表单页面的 SQL 注入攻击?

我需要知道ASP或ASP.Net对注册表进行SQL注入攻击的过程吗?

0 投票
7 回答
775 浏览

php - 这个 PHP/MySQL 语句是否容易受到 SQL 注入的影响?

应该是一个简单的问题,我只是不熟悉 PHP 语法,我想知道以下代码是否可以免受 SQL 注入攻击?:

等等等等等等

我搜索了一下,似乎注射安全代码看起来与 WHERE food_type = \'' 不同。$动物。'\' 在这里使用的语法。

抱歉,我不知道这里使用的是什么版本的 PHP 或 MySQL,或者是否正在使用任何 3rd 方库,任何有专业知识的人都可以提供任何意见吗?

更新

\ 在语句中的作用是什么?:

在我的谷歌搜索中,我遇到了很多关于mysql_real_escape_string......这是防止 SQL 注入和其他讨厌的功能的功能吗?

类声明是:

那么可以想象mysql_real_escape_string包含在里面吗?
我应该要求查看 SDataController 的实现吗?