问题标签 [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.
sql - SQL 存储过程安全吗?
他们是否比做类似的事情更不容易受到 SQL 注入的影响mysql_query("SELECT important_data FROM users WHERE password = $password")
?
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()
显然第二种方式是“便宜又快乐”的方式。但是鉴于上面关于凭据的声明,这些方法中的任何一种真的有必要吗?在迫使攻击者只使用备用攻击向量(与实际阻止攻击的努力相反?
ruby-on-rails - 允许用户输入代码示例的最危险的方法是什么?
我正在实现一个 Rails 应用程序,用户可以在其中存储代码片段以供以后参考。我打算使用 Markdown 进行文本输入,并且可能会使用wmd markdown editor。(正是 Stackoverflow 使用的。)
我有点担心人们在编辑框中输入代码的想法。据我了解,输入 SQL 可能会破坏我的数据库,或者输入稍后会运行并造成恶作剧的 JavaScript 存在危险。
通常,Rails 具有防止这种情况发生的功能,但我在这里是否处于特殊情况,因为我的用户会被鼓励输入代码片段?
我应该注意哪些额外的预防措施?
sql - LIKE 在动态查询中
我想like
在动态参数化查询中使用关键字。我想保护我的查询免受 SQL 注入,所以我不想传递值,而是想在执行查询时传递我的条件,
有没有办法我可以做到这一点?
这是我的动态查询字符串。我不想在这里传递价值。
c# - 我可以从 SELECT 语句中获得 SQL 注入攻击吗?
2个问题实际上:
我知道我必须尽可能多地使用存储过程,但我想知道以下内容。
答:我可以从 SELECT 语句(例如 (Select * from MyTable) )中获得 SQL 注入攻击吗?
B: 另外,当我在 ASP.NET 中使用 SQLDataSource 时,我会受到 SQL 注入攻击吗?
java - 使用多个查询时 Java 和 MySQL 中的 SQL 注入
作为 INSERT 语句的一部分,我有一个带有 SQL 注入的 Web 应用程序。它看起来像这样:
我可以插入常规的多查询注入,');truncate table1;--
但由于使用了 Java + MySQL,它不允许堆叠多个查询,因此上述注入会导致 MySQL 出错,并且第二个查询永远不会执行。
所以基本上,在上述架构中,从这种注入中可以实现的所有目标似乎都是注入“垃圾数据”,这在没有注入的情况下也是可能的。
还有更多的技术,例如 using load_file()
,但这仍然不允许我将数据库操作到我正在寻找的程度。
我在这里错过了什么吗?有没有其他方法可以使用这种注入来获得对数据库的控制?
vb.net - 调用存储过程的 Web 服务需要多少清理?
我正在 VB.Net 中构建一系列 Web 服务
每个 Web 服务都采用多个字符串值,执行一些验证/处理,然后使用 Linq to SQL 调用存储过程。一些字符串包含存储在数据库中的用户数据:
从 Web 服务传递的这些字符串值被转义以捕获单引号字符、分号和各种括号类型。
我正在使用 datacontext.spname(parameter1, parameter2) 方法调用 SP。
目的是确保 Web 服务尽可能具有弹性,同时仍保持高性能。
我在防止 SQL 注入攻击方面做得足够吗?
stored-procedures - SQL 注入 - 存储过程调用没有危险(在 iSeries 上)?
我已经进行了一些搜索,但我有一个关于 SQL 注入的具体问题,并希望我能得到一些输入,因为我相信我可能在字段数据清理等方面得到了错误的结果:-
我有一个在 iSeries 上调用存储过程的 java 程序。存储过程在幕后有 CL/RPG 代码。存储过程通过参数调用,数据来自网页。例如,调用如下所示:-
我是否需要担心通过网站输入'field1Value'等的任何字符,或者因为它是一个存储过程调用,不存在sql注入的危险?这是否取决于幕后的 RPG 程序是否在其自己的 SQL 语句中使用“field1Value”作为该处理的一部分?
传递到过程中的字段长度是固定长度的,因此我们不能,例如,将“狡猾”字符转换为它们的 html 等价物。
感谢任何(我预计这可能是一个愚蠢的问题!)对此的反馈(不一定是 iSeries 特定的)。
asp.net - 对 ASP 注册表单页面的 SQL 注入攻击?
我需要知道ASP或ASP.Net对注册表进行SQL注入攻击的过程吗?
php - 这个 PHP/MySQL 语句是否容易受到 SQL 注入的影响?
应该是一个简单的问题,我只是不熟悉 PHP 语法,我想知道以下代码是否可以免受 SQL 注入攻击?:
等等等等等等
我搜索了一下,似乎注射安全代码看起来与 WHERE food_type = \'' 不同。$动物。'\' 在这里使用的语法。
抱歉,我不知道这里使用的是什么版本的 PHP 或 MySQL,或者是否正在使用任何 3rd 方库,任何有专业知识的人都可以提供任何意见吗?
更新
\ 在语句中的作用是什么?:
在我的谷歌搜索中,我遇到了很多关于mysql_real_escape_string
......这是防止 SQL 注入和其他讨厌的功能的功能吗?
类声明是:
那么可以想象mysql_real_escape_string
包含在里面吗?
我应该要求查看 SDataController 的实现吗?