帝国cms7.5升级到帝国cms8.0插件提示"非法来源"的方法
问题原因 :
帝国CMS 8.0 为了防止 CSRF(跨站请求伪造)攻击,对后台的所有数据提交(POST)和敏感操作(GET)都增加了严格的哈希(Hash)验证。
核心机制 :
- Hash生成 :系统会根据当前登录的管理员ID、密钥等生成一个唯一的哈希字符串。
- 验证要求 :所有请求必须携带这个哈希值,否则会被拦截并提示“非法来源”。
修复方法 :
1. URL 参数 :在链接中必须包含 $ecms_hashur['href'] 或 $ecms_hashur['whehref'] (带 &h=... 的参数)。
2. 表单 POST :
- 在 <form> 的 action 属性中, 不要 自己拼接 ?enews=xxx ,因为这会破坏哈希参数的解析。应该保持 action="do.php<?=$ecms_hashur['whehref']?>" 。
- 在表单内部使用隐藏域 <input type="hidden" name="enews" value="xxx"> 传递操作类型。
- 关键点 :对于某些特定操作,还需要在表单内部输出验证哈希: <?=heformhash_get('操作名', 0)?> 。这会生成一个 <input type="hidden" name="efh" value="..."> 的标签。
3. 代码顺序 :在 do.php 处理文件中,必须 先获取 $enews (操作类型), 然后再调用 hCheckEcmsRHash() 验证函数,因为验证逻辑依赖于操作类型。
相关推荐
-
帝国cms8.0搜索提示页面界面
使用方法:解压出来的index.php文件替换 e/message/index.php 文件。
-
在vue中使用插件的步骤
在 Vue 中使用插件的步骤在 Vue 中使用插件是一个便捷的方式,可以向你的 Vue 应用程序中添加功能。以下是使用 Vue 插件的步骤:1. 安装插件npmnpm install --
-
uniapp小程序插件分包后怎么获取
UniApp 小程序插件分包后如何获取UniApp 小程序支持插件分包,分包后的插件可以独立于主包发布和更新。要获取分包中的插件,可以按照以下步骤操作:1. 在主包中引用分包插件在主包的 文件中添加
-
uniapp怎么使用插件
在uniapp中使用插件1. 安装插件打开HBuilderX,点击菜单栏中的“插件”-“插件管理”在插件市场中搜索所需的插件并将其安装2. 配置插件打开项目根目录下的文件,在字段中添加要使用的插件组
-
uniapp插件怎么用
Uniapp 插件的使用什么是 Uniapp 插件?Uniapp 插件是一种扩展 Uniapp 功能的组件,可以为应用添加自定义功能和数据。如何使用 Uniapp 插件?使用 Uniapp 插件主要涉















