Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL存储过程SQL注入_Mysql_Stored Procedures_Sql Injection - Fatal编程技术网

MySQL存储过程SQL注入

MySQL存储过程SQL注入,mysql,stored-procedures,sql-injection,Mysql,Stored Procedures,Sql Injection,我来自一个Oracle世界,在那里我可以使用DBMS_SQL实现绑定变量数量未知的动态SQL。显然这在MySQL中是不可能的。所以我的问题是如何防止MySQL中的SQL注入?我认为这很容易查找,但我找到的每个示例都是PHP和MySQL。我只处理MySQL存储过程,没有PHP。以下是一个片段: set @sql_string=concat(@sql_string,'col1=''',someRandomText,''' where col2=''',moreRandomText,''';');

我来自一个Oracle世界,在那里我可以使用DBMS_SQL实现绑定变量数量未知的动态SQL。显然这在MySQL中是不可能的。所以我的问题是如何防止MySQL中的SQL注入?我认为这很容易查找,但我找到的每个示例都是PHP和MySQL。我只处理MySQL存储过程,没有PHP。以下是一个片段:

set @sql_string=concat(@sql_string,'col1=''',someRandomText,''' where col2=''',moreRandomText,''';');
是否有可以应用于
someRandomText
以防止SQL注入()的保护功能


谢谢

SP的
someRandomText
输入来自哪里?它通常在应用层中转义到那里。有一个本机字符串函数可以在某些上下文中使用。数据已经在数据库中。它是保存在临时表中的导入数据。这是导入过程的一部分。当存储过程运行并将数据从暂存表移动到生产表时,我需要保护。本机
QUOTE()
string函数可能适合您。在实践中,我认为我从未见过使用它,因为输入通常来自数据库之外。在它进入临时表之前,您是否已经在应用程序层转义了它?我不知道这个函数。非常感谢。我会研究一下。SP的
someRandomText
输入来自哪里?它通常在应用层中转义到那里。有一个本机字符串函数可以在某些上下文中使用。数据已经在数据库中。它是保存在临时表中的导入数据。这是导入过程的一部分。当存储过程运行并将数据从暂存表移动到生产表时,我需要保护。本机
QUOTE()
string函数可能适合您。在实践中,我认为我从未见过使用它,因为输入通常来自数据库之外。在它进入临时表之前,您是否已经在应用程序层转义了它?我不知道这个函数。非常感谢。我会调查的。