比如:
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 2
你这些 PHP 文件是需要有其他文件来调用执行的吧,这个看下 CI 这类单入口框架的的设计,都有这句:
defined('BASEPATH') or exit('No direct script access allowed'); |
5
cydian 2020-04-13 12:46:56 +08:00 via Android 1
从你的描述来看,
不加,问题不大。 因为所有调用的地方都有验证。 用户不可能直接跳过验证去运行函数。 前面已经验证过一次,后面再验证一次,更加安全,更加放心。 后面不验证,我也觉得没有问题。 |
6
mostkia OP |
7
mostkia OP @chinvo 有时候也迫不得已啊,业务结构不是自己定的。虽然因为业务结构原因,直接忽略也是可以的,但问问清楚更放心,也更负责一些,搞懂了没坏处。
|
8
qq292382270 2020-04-13 13:42:36 +08:00 1
参考 discuz 的代码:
可被访问的文件: define('XXXXXX', true); 模块文件: if (!defined('XXXXXX')) { exit('请勿单独访问本页面'); } |
9
mostkia OP @qq292382270 好的,谢谢
|