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

怪我咯
Lepaskan: 2023-03-07 20:16:01
asal
4148 orang telah melayarinya

我们知道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);  //输出经过转义的字符串
Salin selepas log masuk

定义和用法:

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

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

语法:

addslashes(string)
Salin selepas log masuk

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

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

本篇对于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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan