问题标签 [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.
asp.net - jQuery AlphaNumericPlugin - 复制粘贴问题
我正在为 jQuery 使用 .alphanumeric 插件,当用户直接在文本框中输入内容时,它确实可以满足我的期望。但是,如果用户将一个值复制并粘贴到文本框中,那么所有的赌注都将被取消。
我当然可以这样做:
但是......我宁愿不必用 .blur() 函数进一步整理我的代码。有没有其他方法可以解决这个问题?
php - PHP 保护自己免受 SQL 注入?
当我");--
从输入字段发送到我的本地主机 PHP 服务器时,它会自动将其转换为
\");--
看起来很棒,只是我不知道这种行为有多值得信赖。虽然好像避免了SQL注入,但是我的开发环境和生产环境不一样,恐怕生产环境可能没有这种自动激活的保护……
为什么 PHP 会这样做(无需使用即可转换输入mysql_real_escape_string
)?它总是这样做还是只使用某些扩展?依靠这种行为来防止 SQL 注入是否安全?
python - 是否可以使用 Python 标准库(例如 2.5 版)执行参数化的 MS-SQL 查询?
虽然我现在使用的特定数据不会是用户生成的,并且会在我通常的验证例程中对其生命周期的一英寸内进行清理,但我想学习如何进行基本的 INSERT、SELECT 等操作。 SQL查询同时保护自己免受SQL注入攻击,仅供参考。我宁愿通过参数化查询学习如何以“正确”的方式做事。
消毒总是好的,但我将我可怜的智力与经验丰富的黑客相提并论。手动转义意味着我可能忽略了一些事情,因为黑名单不如白名单强大。为了进一步澄清,我并不是说使用(%s)
符号作为参数传递来构建可能名为sqlstatement
. 我认为我需要知道的神奇词汇之一是“绑定”。
我也希望避免 Python 标准库之外的任何内容。
有问题的应用程序需要 Microsoft SQL 2005(如果相关)。我正在使用 ActiveState Python 以及模块 dbi 和 odbc。因为这是别人的数据库,所以存储过程已经出来了。
sql - 带有准备好的语句的 SQL 注入?
如果我没记错的话,我认为 Jeff 在 Stack Overflow 播客中提到了 SQL 准备语句中可能存在的弱点。我想知道他指的是哪种弱点?可能只是使用不当,还是更险恶?
在我的记忆中,播客并没有深入探讨这个主题,只是顺便说一句。
c# - INSERT 上的 SQL 注入
我在我们公司的 Intranet 上创建了一个小型调查网页。此网页无法从外部访问。
该表单只是几个单选按钮和一个评论框。
我想保持良好的编码习惯,并想防范 SQL 注入。
SQL 注入可以发生在带有来自文本框的注释的插入语句上吗?如果是这样,我如何使用 .NET 2.0 来防范它?
java - 我应该如何清理 Java 中的数据库输入?
有人可以指点我一份关于安全运行部分由用户输入形成的 SQL 查询的初学者指南吗?我正在使用 Java,但语言中性指南也很好。
期望的行为是,如果有人在 GUI 中键入类似
very nice;) DROP TABLE FOO;
数据库应将其视为文字字符串并安全存储而不删除任何表。
php - Zend上的Php,如何转义查询的变量?
我在 Zend Framework 中做一些查询,我需要确保在下一种格式中没有 SQL 注入是可能的。我可以使用 mysql_escape(deprecated) 并且不会做所有的工作。如果我尝试使用 real_mysql_escape,它将无法获取与数据库的连接,并且我无法找到 zend_filter 将如何解决问题。
我正在做的查询(简化)具有以下语法:
使用此框架防止 SQL INJECTION 的最佳方法是什么?
sql - SQL Server:清理@param 以防止注入攻击
为了争论,假设我必须创建一个包含 SQL 查询的局部变量,该查询具有 INSERT:
此 INSERT 还将包含一个列值:
现在,我显然担心注入攻击,并希望确保@message 的值不会使@insert 的值成为恶意或格式错误的对EXEC 的查询。
这给我们带来了我的问题:在@message 中转义 ' 字符是否足够?@message 中是否还有其他可能出现的字符可以逃脱?
例子:
(当我说“必须”时,这是因为我的查询在一个存储过程中,并且这个存储过程接受@table,这是要插入的目标表。我对讨论我的体系结构或为什么表不感兴趣到 INSERT into 是通过过程参数“动态”指定的。请不要对此发表评论,除非除了 EXEC() 查询之外还有另一种方法来指定要插入的表,然后将表名作为过程参数接收。)
mysql - MySQL 上的 SQL 注入安全性的最佳解决方案是什么?
运行我的字符串以确保不可能进行 MySQL 注入的最佳功能是什么?
另外,它是否需要在输出时通过另一个函数运行它才能正确显示?
也可以看看
参数真的足以防止 Sql 注入吗?带有子句
的 C# 参数化查询 MySQLin
我可以通过转义单引号和用单引号包围用户输入来防止 SQL 注入吗?
php - 为什么使用 mysql 准备好的语句比使用常见的转义函数更安全?
另一个问题中有一条评论如下:
“当涉及到数据库查询时,请始终尝试使用准备好的参数化查询。mysqli 和 PDO 库支持这一点。这比使用 mysql_real_escape_string 等转义函数要安全得多。”
所以,我想问的是:为什么准备好的参数化查询更安全?