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

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

49 2024-05-30 08:52:11

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

字符集依赖

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

转义字符

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

字符集编码

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灵动标签是可以按照字母调用信息的,通过按字母调动,可以在信息分类时...

1 346
帝国CMS有必要开发百度小程序吗?
帝国CMS有必要开发百度小程序吗?

百度小程序的开放生态对网站站长及企业商家而言,能够从中获取到什么呢?百度智...

1 391
帝国cms制作信息反馈表的方法
帝国cms制作信息反馈表的方法

帝国cms自带的信息反馈功能,不仅可以实现留言功能,还可以实现像在线报名、反...

1 470
帝国cms怎样做下载日、周、月排行功能?
帝国cms怎样做下载日、周、月排行功能?

帝国cms开发的下载站很多,许多站点基于优质用户推荐的需求就需要做下载的日...

3 377
帝国cms7.5编辑器的换行符br怎样改为p元素?
帝国cms7.5编辑器的换行符br怎样改为p元素?

帝国cms7.5自带的编辑器ckeditor默认换行符是<br>,在实际应用中经常会出现问...

0 321
帝国cms网站怎样用宝塔自动备份?
帝国cms网站怎样用宝塔自动备份?

帝国cms开发的网站数据要经常备份,防范不小心误删除了数据或文件以及服务器...

0 484
帝国CMS在JS调用登陆模板中调用会员头像
帝国CMS在JS调用登陆模板中调用会员头像

我们在开发帝国cms登陆模板时经常需要调用会员头像,但帝国CMS默认并没有提供...

0 326
帝国cms网站怎样判断是动态、静态还是伪静态?
帝国cms网站怎样判断是动态、静态还是伪静态?

对于资深一点的站长或者SEO来说,一定会经常听到动态、静态、伪静态这类的词...

0 477
推荐插件
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

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

0 366
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 863
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

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

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

0 320
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

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

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

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

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

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

0 338
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

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