php利用 addslashes函数实现sql防注入实例讲解
May 22, 2017 pm 12:00 PM我们知道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()函数的区别实例详
Atas ialah kandungan terperinci php利用 addslashes函数实现sql防注入实例讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP
