比如:
function AAA(){ AAA; } function BBB(){ BBB; } function CCC(){ CCC; }
以上的代码,假设是一些 php 文件的内容 function 里面带有敏感危险的操作,这些 php 文件,可以直接在站点中输入 url 访问,但按照逻辑,直接访问这些文件,里面的 function 并不会主动执行(已确保所有调用的代码都在登录后执行的)。这种情况下这类功能块文件,不做权限是否安全呢?是否有潜在的风险可以激活这些 function 功能块?
1 3K1yf6UvnVz5w008 2020-04-13 12:11:42 +08:00 同问 |
![]() | 2 chinvo 2020-04-13 12:12:26 +08:00 via iPhone 理论上 web 入口应该在独立的子目录,这些东西都应该放到非 web 路径里 |
![]() | 3 alex321 2020-04-13 12:42:22 +08:00 ![]() 你这些 PHP 文件是需要有其他文件来调用执行的吧,这个看下 CI 这类单入口框架的的设计,都有这句: defined('BASEPATH') or exit('No direct script access allowed'); |
![]() | 5 cydian 2020-04-13 12:46:56 +08:00 via Android ![]() 从你的描述来看, 不加,问题不大。 因为所有调用的地方都有验证。 用户不可能直接跳过验证去运行函数。 前面已经验证过一次,后面再验证一次,更加安全,更加放心。 后面不验证,我也觉得没有问题。 |
![]() | 6 mostkia OP |
![]() | 7 mostkia OP @chinvo 有时候也迫不得已啊,业务结构不是自己定的。虽然因为业务结构原因,直接忽略也是可以的,但问问清楚更放心,也更负责一些,搞懂了没坏处。 |
![]() | 8 qq292382270 2020-04-13 13:42:36 +08:00 ![]() 参考 discuz 的代码: 可被访问的文件: define('XXXXXX', true); 模块文件: if (!defined('XXXXXX')) { exit('请勿单独访问本页面'); } |
![]() | 9 mostkia OP @qq292382270 好的,谢谢 |