Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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_Security_Sql Injection - Fatal编程技术网

MySQL上SQL注入安全的最佳解决方案是什么?

MySQL上SQL注入安全的最佳解决方案是什么?,mysql,security,sql-injection,Mysql,Security,Sql Injection,运行字符串以确保MySQL注入不可能的最佳函数是什么 此外,是否需要在退出时通过另一个函数来运行它,以使其正确显示 另见 一个参数函数 撇开幽默不谈,我的意思是,如果可以避免的话,不要将用户输入的内容作为SQL动态执行。将所有内容作为参数传递,并从查询中引用它们。请参阅以获得一个很好的链接来解释这一点。正如Chad所说,始终使用参数化查询来避免SQL注入 要回答问题的后半部分,如果输出到网页,则始终转义任何特殊HTML字符(&,),以防止脚本注入。在参数化查询中添加在应用程序中使用输入验证

运行字符串以确保MySQL注入不可能的最佳函数是什么

此外,是否需要在退出时通过另一个函数来运行它,以使其正确显示

另见

一个参数函数


撇开幽默不谈,我的意思是,如果可以避免的话,不要将用户输入的内容作为SQL动态执行。将所有内容作为参数传递,并从查询中引用它们。请参阅以获得一个很好的链接来解释这一点。

正如Chad所说,始终使用参数化查询来避免SQL注入


要回答问题的后半部分,如果输出到网页,则始终转义任何特殊HTML字符(
&
),以防止脚本注入。

在参数化查询中添加在应用程序中使用输入验证。永远不要相信输入是干净的。检查一下。例如,如果它应该是一个整数,请检查以确保它转换为数值时不会出现问题。

在PHP中,最好的方法是对字符串使用HTML转义。
它将特殊字符转换为HTML兼容字符


示例:“(空格)转换为“%20”。

您使用的是什么ORM或访问层?你用什么语言?对于大多数ORM,这对您来说是微不足道的。如果您正确地使用JDBC驱动程序,这对您来说是微不足道的。请提供您正在使用的语言和组件。重复:,@S.Lott:我认为这些不算重复,因为它们假设了这个问题的答案。接近重复:@Jon B:我的观点是这个问题不合理。对于参数化查询,SQL注入是不可能的——不涉及信任。任何字符串操作都适用于所有测试用例;你必须相信他们测试了所有的案例。考虑一下信任的因素。+ 1,这是一条路。这不仅是因为它避免了SQL注入,而且还允许RDBMS进行更好的查询执行计划缓存。+1:始终有效——使注入实际上不可能。字符串操作只会使我们测试的所有情况都不太可能发生。+1:Mush比相信自己的实现没有任何边缘情况或特殊语法漏洞要好。这还可以防止在数据库中使用HTML实体。(我看着你phpBB!)HTML转义必须用于HTML,而不是SQL。但没有HTML转义将在%20中腾出空间