ad桂林山水甲天下dslashes()防sql注入:
定义如下:
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(’)双引号(”)反斜杠(\)null提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
用法如下:
<?php$str = "who's peter griffin?";echo $str . "我和春天有个约会 this is not safe in a databa query.<br>";echo addslashes($str) . " this is safe in a databa query.";?>
// 输出:
who's peter griffin? this is not safe in a databa query.
who\'s peter griffin? this is safe in a databa query.
htmlspecialchars()过滤xss问题:
定义如下:
htmlspecialchars() 函数把预定义翡翠岛门票的字符转换为 html 实体。
预定义的字符是:
& (和号)成为 &” (双引号)成为 “‘ (单引号)成为 ‘< (小于)成为 <> (大于)成为 >提示:如需把特殊的 html 实体转换回字符,请使用htmlspecialchars_d我和mmecode()函数。
用法如下:
<?php$str = "bill & 'steve'";echo 皮皮虾的梗htmlspecialchars($str, ent_compat); // 只转换双引号echo "<br>";echo htmlspecialchars($str, ent_quotes); // 转换双引号和单引号echo "<br>";echo htmlspecialchars($str, ent_noquotes); // 不转换任何引号?>
// 输出
bill & 'steve'
bill & 'steve'
bill & 'steve'
addslashes()与htmlspecialchars()的区别:
除了两个函数的转义方式不同外,它们的使用也不同。
addslashes()通过用于防止sql语句注入,在执行sql语句前对通过get、post和cookie传递来的参数中的单引号,双引号,\ 和null进行转义。
但sql执行成功后,插入到数据库中的数据是不带有转义字符\的。这是如果插入到数据库中的是一些js脚本,当这些脚本被读取出来时还是会被执行。
这是我们可对读取出来的数据使用htmlspecialchars()进行过滤,避免执行被注入的脚本。
参考文章:
本文发布于:2023-04-07 05:33:41,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/6c7cdbcf4f1de4e2befef07e17f51f40.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP中addslashes()和htmlspecialchars() 函数的区别及应用.doc
本文 PDF 下载地址:PHP中addslashes()和htmlspecialchars() 函数的区别及应用.pdf
留言与评论(共有 0 条评论) |