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

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

99 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怎样设置TAG伪静态
帝国CMS怎样设置TAG伪静态

从优化的角度来说,帝国CMS的动态tag由于是带问号的URL,搜索引擎不大喜欢,收录...

11 1159
帝国cms百度推送插件怎样将http改成https
帝国cms百度推送插件怎样将http改成https

帝国cms百度推送插件流传十分广,但有些https站点却推送了http的链接,这无疑十...

9 670
帝国cms怎样将信息来源befrom外链转内链?
帝国cms怎样将信息来源befrom外链转内链?

很多技术分享型站点转载了外站不少信息,部分有素质的站长会展示信息来源并链...

27 3896
帝国cms文章列表、详情怎样实时显示点击数?
帝国cms文章列表、详情怎样实时显示点击数?

常有客户要求文章列表、详情能够实时显示点击数,但又不想将静态页面改为动态...

6 566
帝国cms制作信息反馈表的方法
帝国cms制作信息反馈表的方法

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

1 600
帝国cms碎片功能使用详解
帝国cms碎片功能使用详解

帝国CMS提供了强大的碎片功能,其位置位于【栏目】-》【碎片管理】-》【管理...

0 390
帝国cms网站被攻击了怎么办?
帝国cms网站被攻击了怎么办?

如果对被攻击一无所知,也没有听说过CC、DDoS的概念,那被攻击以后,只能懵逼等到...

1 409
帝国cms禁止蜘蛛抓取后台提升网站安全
帝国cms禁止蜘蛛抓取后台提升网站安全

后台是网站安全的重中之重,而帝国cms后台路径可以修改让得网站安全度大为提...

1 542
推荐插件
帝国cms百度、必应bing、神马推送增强收录三合一插件
帝国cms百度、必应bing、神马推送增强收录三合一插件

因客户需要一键推送到多平台,下载鸥开发了这款一键推送至百度、必应、神马插...

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

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

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

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

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

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

0 642
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

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

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

0 935
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

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

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

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