致lecms开发者:

20240514已更新底层框架的安全性~ 可gitee更新!

 

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

里面有一个钩子文件:

index_control_index_before.php

 

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

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

 

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

1、加了常量判断

<?php
defined('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、加常量定义判断 (程序正常加载钩子代码,也会自动替换 常量判断 为 空。)

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

 

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

 

 

特别声明:本站所有资源均为学习测试使用,请在下载后48小时之内自主删除,本站以学习为目的不承担任何法律责任!