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

时间:2009-04-03 16:31:35

标签: mysql security sql-injection

运行我的字符串以确保无法注入MySQL的最佳功能是什么?

此外,它是否需要在出路时通过另一个功能运行才能使其正确显示?

另见

  

Are Parameters really enough to prevent Sql injections?
   C# Parameterized Query MySQL with in clause
   Can I protect against SQL Injection by escaping single-quote and surrounding user input with single-quotes?

5 个答案:

答案 0 :(得分:15)

答案 1 :(得分:1)

参数功能。

除了幽默之外,我的意思是如果你可以完全避免它,不要动态地将用户输入的内容作为SQL执行。将所有内容作为参数传递,并从查询中引用它们。请参阅Chad Birch's answer以获取解释此信息的良好链接。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

在PHP中,最好的方法是在字符串上使用HTML转义 它将特殊字符转换为符合HTML标准的字符。

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