致lecms开发者:
20240514已更新底层框架的安全性~ 可gitee更新!(这个时间节点前的版本不支持“<?php exit;”这种写法)
假如有一个插件文件夹名: 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修复,程序杀毒,插件定制都可以提供最佳解决方案。