realescapestring:addslashes和mysql_real_escape_string

  本文介绍是用 mysql_real_escape_对用户提交数据进行整理处理和通过addslashes以及mysql_escape_这3个类似功能区别经过转义数据可以直接插入到数据库中

  很好介绍说明了addslashes和mysql_real_escape_区别虽然国内很多PHP coder仍在依靠addslashes防止SQL注入(包括我在内)我还是建议大家加强中文防止SQL注入检查addslashes问题在于黑客可以用0xbf27来代替单引号而addslashes只是将0xbf27修改为0xbf5c27成为个有效多字节其中0xbf5c仍会被看作是单引号所以addslashes无法成功拦截

  当然addslashes也不是毫无用处它是用于单字节处理多字节还是用mysql_real_escape_

  另外对于php手册中get_magic_quotes_gpc举例:

   (!get_magic_quotes_gpc) {

  $lastname = addslashes($_POST[‘lastname’]);

  } {

  $lastname = $_POST[‘lastname’];

  }

  最好对magic_quotes_gpc已经开放情况下还是对$_POST[’lastname’]进行检查

  再说下mysql_real_escape_和mysql_escape_这2个区别:

  mysql_real_escape_ 必须在(PHP 4 >= 4.3.0, PHP 5)情况下才能使用否则只能用 mysql_escape_ 两者区别是:

  mysql_real_escape_ 考虑到连接当前而mysql_escape_ 不考虑

  整理总结下:

  addslashes 是强行加;

  mysql_real_escape_ 会判断但是对PHP版本有要求;

  mysql_escape_不考虑连接当前

Tags:  mysqlrealconnect phpaddslashes addslashes realescapestring

延伸阅读

最新评论

发表评论