首页 > 开发 > MySQL > 正文

如何安全过滤用户提交的数据提交到数据库

2017-09-08 09:11:19  来源:网友分享

sql注入总是无孔不入(ps:' or 1=1#),该如何安全的过滤好呢(我用的php和mysql_connect)?

解决方案

可以使用 mysql_real_escape_string() 对字符串进行转义,然后再放进 SQL。

$name = mysql_real_escape_string($_POST['name']);mysql_query('SELECT * FROM `users` WHERE `name` = "'.$name.'"');//改进版。防 SQL 注入,同时屏蔽 _ 和 % 字符function escape($str) {  $str = mysql_real_escape_string($str);  $str = str_replace(['_', '%'], ['\\_', '\\%'], $str);  return $str;}

这里有官方介绍:http://www.php.net/manual/zh/function.mysql-real-escape-string.php


个人建议还是使用一个WEB框架,常见的WEB框架都有完善的防注入机制。
例如:
简单、快速入门的:CodeIgniter
功能更全面的:Yii (这个官网有时会被墙)