参数化防SQL注入

现在防止SQL注入最常用的方法基本上就是参数化条件了。

原理是因为用这种方式处理时,数据库服务器会先编译传入的SQL语句,而不把参数代入。编译完成后再把参数替换。所以你的注入是无法被执行的。

 

比如用PHP实现。

1.mysql_query类型函数实现

   $query = sprintf('select * from book where id = "%s"', '33');

   mysql_query($query, $conn);

 

2.mysqli实现

   这种实现,PHP MYSQLi 类本身本身已经提供了预处理。

   $mysqli = new MYSQLi($host, $port);

   $stmt = $mysqli->prepare('select * from book where id = ?');

   $stmt->bind("i", 333);

posted @ 2011-12-13 12:32  黑暗遊侠  阅读(260)  评论(0编辑  收藏  举报