PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > LeCMS

致插件开发者:关于插件开发hook的安全性

管理员 2024-12-15
LeCMS
6

致lecms开发者:

20240514已更新底层框架的安全性~ 可gitee更新!(这个时间节点前的版本不支持&ldquo;<?php exit;&rdquo;这种写法)

 

假如有一个插件文件夹名: xxx

里面有一个钩子文件:

index_control_index_before.php

 

在知道插件文件名和钩子名的情况下:

可以直接通过 域名/lecms/plugin/xxx/index_control_index_before.php, 对php代码进行访问!

 

如果钩子文件的开头有下述代码,可以忽略!

1、加了常量判断

<?phpdefined('ROOT_PATH') or exit;代码片段

2、钩子里面的代码都是函数形式(有一定风险,可以通过动态路由访问:control-action)

<?php//钩子里面的代码全是函数~function xxxxx(){   ...........代码片段}

 

如果钩子里面代码是类似的一些可以执行的片段,如:

<?php$a = 1;$b = 2;$c = $a+$b或者一些直接操作数据库的代码~~

会给系统带来一些不安全的因素。

因此,建议对这种代码改下如下两种方式之一:

1、开头加exit (程序正常加载钩子代码,会自动替换 <?php exit; 为 空。)

<?php exit;$a = 1;$b = 2;$c = $a+$b或者一些直接操作数据库的代码~~

2、加常量定义判断 (程序正常加载钩子代码,也会自动替换 常量判断 为 空。)

<?phpdefined('ROOT_PATH') or exit;$a = 1;$b = 2;$c = $a+$b或者一些直接操作数据库的代码~~

 

上述两种:直接访问钩子文件,会直接终止,不会执行下面的代码。

 

 


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部