防止类似查询中的sql注入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止类似查询中的sql注入相关的知识,希望对你有一定的参考价值。

Function to prevent sql injection in Like queries, where the characters '_' and '%' can be dangerous.
  1. <?php
  2. function escapeLike($mysql, $data)
  3. {
  4. if(is_int($data) || is_float($data)) return $data;
  5.  
  6. $escaped = $mysql->real_escape_string($data);
  7. $find = array('%' => '\%', '_' => '\_');
  8. return strtr($escaped, $find);
  9. }
  10.  
  11. //Usage
  12.  
  13. $dangerous_input = '%My Name';
  14.  
  15. //$mysql has to be either an instance of mysql or mysqli
  16. $query = "SELECT * FROM tbl WHERE field LIKE '" . escapeLike($mysql, $dangerous_input) . "%'";
  17. echo $query; //Echoes: SELECT * FROM tbl WHERE field LIKE '\%My Name%'
  18. ?>

以上是关于防止类似查询中的sql注入的主要内容,如果未能解决你的问题,请参考以下文章

使用 fmt.Sprintf 防止 Go 中的 sql 注入以进行本机查询

防止JPQL查询sql注入

如何防止sql注入oracle apex

MyBatis如何防止SQL注入

MyBatis怎么防止SQL注入

SQL Server如何防止动态sql中的sql注入