跳到主要内容
PHP

帝国cms防注入处理 addslashes dgdb_tosave

管

管理员

PHP

2020年06月01日 1,992 次阅读
本页目录
帝国cms防注入处理方式很让人无语,sql语句接近原生,无法从底层过滤。

他使用一堆的函数来处理防注入的问题。

帝国cms插入数据需要进行两次addslashes处理(所以显示内容时候需要stripslashes一次),dgdb_tosave 函数 其实就是使用了两次 addslashes函数。保存到数据库中的过程中mysql会去掉一次addslashes,保存到数据库中的结果就相当于addslashes了一次。之所以进行两次addslashes我想可能是为了怕在取出数据作为查询时忘记加addslashes从而造成二次注入。如果进行两次那么查询到的数据相当于已经进行了一次addslashes。

如果外部用户输入的字段查询时,需要使用两次 addslashes 函数来过滤数据再次和数据库对比。
如果从数据库中查询的结果再次查询,则只需要把结果 addslashes一次即可查询到正确结果(因为数据已经被addslashes了一次)

示例:
$s="sss'";
$s1=addslashes(addslashes("sss'"));
$que= $empire->query("update {$dbtbpre}ecms_article set title='$s1' where id=18");
$r=$empire->fetch1("select * from {$dbtbpre}ecms_article where id='18'");
$r=$empire->fetch1("select * from {$dbtbpre}ecms_article where title='".$r[title]."'");
print_r($r);

Related

相关文章

同分类文章 →
2026年07月11日 PHP

laravel什么样的方法适合放在模型中?什么适合用专门的服务类? cachedFavIds适合放在模型中吗?

一、适合放在模型中的方法Laravel 采用 ActiveRecord 风格,模型本身就是"数据 + 围绕该数据的操作"的载体。以下几类方法适合放模型: 关联关系:belongsTo、morphTo、hasMany 等。如 UserFav::userfavable()、UserFav::us

2026年04月13日 PHP

Vue3 静态文件放在同域名 Laravel 项目下

核心思路是:Vue3 构建后的静态文件放到 Laravel 的 public/ 目录下,通过 Laravel 路由的 catch-all 机制让 SPA 的前端路由正常工作。方案说明以 xx.com/admin 为例,整体架构如下:请求流程:xx.com/admin/* → Laravel

2025年08月18日 PHP

Laravel Eloquent 中可以通过静态方式调用的方法

在 Laravel Eloquent 中,可以通过静态方式调用的方法包括:1. 查询作用域 (Scopes)// 可以静态调用UserComment::active()->get();UserComment::where('status', 1)->first();2. Eloquent 内置的查询方法UserComment::fi

WeChat

扫码加我微信

微信二维码