致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
或者一些直接操作数据库的代码~~

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


  • 隔壁老卢

    1月前

    引用


    2

    或者加上验证

  • 声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。