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

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

176 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创建新栏目乱码怎么办?

经常会有用户朋友反馈说新建的栏目页面怎么不对,或者说新建栏目怎么乱码了?总...

15 834
帝国CMS怎样高效快速的做猜你喜欢的随机调用功能?
帝国CMS怎样高效快速的做猜你喜欢的随机调用功能?

猜你喜欢小功能如果直接用rand()调用随机ID是非常消耗性能的。小网站几百几...

7 546
帝国cms会员中心怎样调用我提交的反馈历史记录?
帝国cms会员中心怎样调用我提交的反馈历史记录?

帝国cms信息反馈表非常好用,通过合理开发信息反馈功能,我么可以实现用户留言...

1 414
帝国cms无法加载360站长平台的js推送代码怎么办?
帝国cms无法加载360站长平台的js推送代码怎么办?

如果直接在帝国cms模板中插入360推送代码,会发现在插入360推送代码后,无法正...

7 716
帝国cms怎样判断当前页面为首页?
帝国cms怎样判断当前页面为首页?

在帝国cms开发时,我们经常要给栏目配置高亮效果。栏目高亮判断循环的id等于...

0 759
360蜘蛛抓取帝国cms后台目录威胁网站安全
360蜘蛛抓取帝国cms后台目录威胁网站安全

使用360极速浏览器已经很长时间,一直感觉用起来相当不错。一方面有chrome的...

0 639
帝国cms默认评论表情添加修改调用与删除
帝国cms默认评论表情添加修改调用与删除

帝国cms评论中默认的表情包是QQ表情,默认显示10个,可以添加可以修改,本文详细...

0 476
帝国cms怎样分享到微信好友、朋友圈带图片与简介
帝国cms怎样分享到微信好友、朋友圈带图片与简介

微信作为我们的国民app流量很大,简单的js分享往往只有一个二维码或者链接,但...

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

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

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

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

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

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

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

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

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

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

0 545
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

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

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

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

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

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