首页 >后端开发 >php教程 > 正文

php利用 addslashes函数实现sql防注入实例讲解

原创2017-05-22 12:00:2602380
我们知道addslashes()函数的作用是对输入字符串中的某些预定义字符前添加反斜杠。那么它怎么又与我们的防sql注入扯上关系呢?什么又是sql注入呢?

SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句

来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。本篇文章主要介绍php利用 addslashes函数实现sql防注入实例讲解,通过实例讲述采用addslashes函数对于sql防注入的用处。

示例

参数'a..z'界定所有大小写字母均被转义,代码如下:

echo addcslashes('foo[ ]','a..z'); //输出:foo[ ] 
$str="is your name o'reilly?"; //定义字符串,其中包括需要转义的字符 
echo addslashes($str);  //输出经过转义的字符串

定义和用法:

addslashes() 函数在指定的预定义字符前添加反斜杠.

这些预定义字符是:单引号 ('),双引号 ("),反斜杠 (),null

语法:

addslashes(string)

当然这个函数更安全,实例代码如下:

$str="<a href='test'>test</a>"; //定义包含特殊字符的字符串 
$new=htmlspecialchars($str,ent_quotes);  //进行转换操作 
echo $new;           //输出转换结果 
//不过输出时要用到 
$str="jane & 'tarzan'";  //定义html字符串 
echo html_entity_decode($str);   //输出转换后的内容 
echo "<br/>"; 
echo html_entity_decode($str,ent_quotes); //有可选参数输出的内容

本篇对于PHP安全程序设计来说具有不错的参考借鉴价值。不过使用addslashes防止SQL注入黑客是有办法绕过的,也不是那么的安全。很多PHP程序员仍在依靠addslashes防止SQL注

入,还是建议大家加强中文防止SQL注入的检查。addslashes的问题在 于黑客 可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,

其中的0xbf5c仍会 被看作是单引号,所以addslashes无法成功拦截。当然addslashes也不是毫无用处,它是用于单字节字符串的处理

【相关文章推荐】:

1.php addslashes()函数和stripslashes()函数实例详解

2.php stripslashes()函数和addslashes()函数的区别实例详

以上就是php利用 addslashes函数实现sql防注入实例讲解的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 专题推荐

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类