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

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

78 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搬家报错No input file specified
宝塔面板帝国cms搬家报错No input file specified

今天有客户向鸥哥求助说宝塔面板帝国cms搬家报错No input file specified,这...

23 2037
帝国cms怎样默认显示副标题ftitle,副标题为空时显示标题?
帝国cms怎样默认显示副标题ftitle,副标题为空时显示标题?

在帝国cms的开发应用中,标题作为文章的主体往往需要表意明显才能获得更好的...

1 469
帝国cms二次开发后台手动添加会员方法
帝国cms二次开发后台手动添加会员方法

帝国cms后台可以做手动添加会员的功能吗,要怎么添加呢?请参考下方教程了解帝...

1 381
帝国CMS生成选项是“ID目录”无斜扛解决的方法
帝国CMS生成选项是“ID目录”无斜扛解决的方法

如果你栏目生成选项选择的ID目录,那么帝国他生成的地址会少一个斜扛,访问时就...

3 448
帝国cms下载判断设备环境安卓苹果并适配下载地址
帝国cms下载判断设备环境安卓苹果并适配下载地址

帝国cms静态站下载判断设备环境是安卓还是苹果,并自动适配下载地址,如果当前...

1 443
帝国cms留言板怎样做在线留言的功能?
帝国cms留言板怎样做在线留言的功能?

在线留言是我们常用的功能,通过开发一个简单的留言板,我们可以有效与潜在用户...

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

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

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

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

8 397
推荐插件
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

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

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

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

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

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

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

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

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

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

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

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

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

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

0 416
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

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