下载鸥 > 网站下载 > 开发教程 > 帝国CMS

网站安全之转义函数mysqli_real_escape_string和addslashes有什么不同

153 2024-05-30 08:52:11

收藏
mysqli_real_escape_string 和 addslashes 是 PHP 中用于处理字符串,特别是为了数据库操作(如 SQL 查询)中安全地插入数据而设计的两个函数。如果没有开启魔术引用,帝国cms核心函数RepPostStr()使用的就是addslashes 进行转义。
 

字符集依赖

mysqli_real_escape_string 函数的行为依赖于当前 MySQL 连接的字符集。它会根据连接的字符集对字符串中的特殊字符进行转义。
addslashes 函数不依赖于数据库连接或字符集。它简单地对字符串中的几个预定义字符(单引号 '、双引号 "、反斜杠 和 NULL 字符 )添加反斜杠 。
 

转义字符

mysqli_real_escape_string 除了转义单引号 '、双引号 "、反斜杠 和 NULL 字符 外,还会对回车符 r、换行符 n 和 x1a(Z 垂直制表符)进行转义。
addslashes 仅对单引号 '、双引号 "、反斜杠 和 NULL 字符 进行转义。
 

字符集编码

mysqli_real_escape_string 更适合处理多字节字符集(如 UTF-8),因为它根据连接的字符集进行转义。
如果使用 addslashes 处理非 8 位或 UTF-8 编码的字符串,可能会错误地转义一些不是特殊字符的字节。
 

SQL 注入防护

虽然两者都可以用于帮助防止 SQL 注入攻击,但 mysqli_real_escape_string 更为可靠,因为它考虑了连接的字符集。
使用 addslashes 可能在处理非标准字符集时导致 SQL 查询错误或漏洞。
 

用途

mysqli_real_escape_string 主要用于在 SQL 查询中安全地插入字符串值。
addslashes 也可以用于在 SQL 查询中插入字符串,但其用途更广,如处理 HTML 标签、JSON 字符串等。
 

兼容性

mysqli_real_escape_string 是 mysqli 扩展的一部分,与 MySQLi 数据库连接一起使用。
addslashes 是 PHP 的内置函数,与数据库连接无关。
因此,在兼容性方面,addslashes表现更好。


如果必须使用字符串插值构建 SQL 查询,则 mysqli_real_escape_string 通常是更好的选择,因为它考虑了连接的字符集。

总之,mysqli_real_escape_string 和 addslashes 在处理字符串转义方面有所不同,主要区别在于字符集依赖、转义字符、字符集编码和 SQL 注入防护能力。在选择使用哪个函数时,应根据具体的应用场景和需求来决定。

本文地址:https://xzo.com.cn/develop/empire/1219.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
忘记帝国CMS账号/密码/认证码如何重置
忘记帝国CMS账号/密码/认证码如何重置

部分用户一段时间没有登录后台,或是换了机器忘记了帝国CMS账号/密码/认证码,...

16 1186
帝国CMS怎样快速入门?
帝国CMS怎样快速入门?

很多做网站的朋友想要自己学习一门CMS,要么是织梦CMS,要么呢是帝国CMS,而我们...

1 407
帝国CMS开发的网站怎样修改网站标题关键词和描述?
帝国CMS开发的网站怎样修改网站标题关键词和描述?

在网站运营的过程中,由于业务的变更或是优化的需要,可能需要修改网站的标题,关...

1 584
帝国cms安装报错fatal error:require():Failed opening required ../class/EmpireCMS_version.php(include_path=.
帝国cms安装报错fatal error:require():Failed opening required ../class/EmpireCMS_version.php(include_path=.

帝国CMS安装报错 fatal error:require():Failed opening required ../clas...

1 742
帝国cms误删了已收录的文章要怎么恢复数据?
帝国cms误删了已收录的文章要怎么恢复数据?

客户站点由于员工操作失误,直接删除了20篇文章。如果有定期备份,那恢复数据即...

0 525
帝国cms会员中心查看评论过的文章怎么开发?
帝国cms会员中心查看评论过的文章怎么开发?

许多帝国cms站点开放了会员评论的功能,而评论过的文章可以查看则相当于当年...

1 442
帝国cms网站加载速度很慢怎么办?
帝国cms网站加载速度很慢怎么办?

很少有帝国cms反馈网站加载速度很慢的问题,如果你的帝国cms站点加载速度很慢...

1 665
帝国cms生成效率低速度很慢怎么办?
帝国cms生成效率低速度很慢怎么办?

今天有客户联系鸥哥,说网上买的帝国cms模板生成效率很低。网站数据只有5万条...

22 2746
推荐插件
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 606
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 984
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 508
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 837
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 495
帝国cms百度AI黑白图像上色api接口对接插件
帝国cms百度AI黑白图像上色api接口对接插件

百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...

0 481
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 804
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 561
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入