V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mostkia
V2EX  ›  问与答

PHP 后台写了一些功能块,不做权限直接暴露是否有安全问题。

  •  
  •   mostkia · 2020-04-13 12:07:37 +08:00 · 1492 次点击
    这是一个创建于 1689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如:

    function AAA(){
    	AAA;
    }
    
    function BBB(){
    	BBB;
    }
    
    function CCC(){
    	CCC;
    }
    

    以上的代码,假设是一些 php 文件的内容 function 里面带有敏感危险的操作,这些 php 文件,可以直接在站点中输入 url 访问,但按照逻辑,直接访问这些文件,里面的 function 并不会主动执行(已确保所有调用的代码都在登录后执行的)。这种情况下这类功能块文件,不做权限是否安全呢?是否有潜在的风险可以激活这些 function 功能块?

    9 条回复    2020-04-13 14:08:52 +08:00
    3K1yf6UvnVz5w008
        1
    3K1yf6UvnVz5w008  
       2020-04-13 12:11:42 +08:00
    同问
    chinvo
        2
    chinvo  
       2020-04-13 12:12:26 +08:00 via iPhone
    理论上 web 入口应该在独立的子目录,这些东西都应该放到非 web 路径里
    alex321
        3
    alex321  
       2020-04-13 12:42:22 +08:00   ❤️ 2
    你这些 PHP 文件是需要有其他文件来调用执行的吧,这个看下 CI 这类单入口框架的的设计,都有这句:

    defined('BASEPATH') or exit('No direct script access allowed');
    cydian
        4
    cydian  
       2020-04-13 12:44:35 +08:00 via Android
    @alex321 正解
    cydian
        5
    cydian  
       2020-04-13 12:46:56 +08:00 via Android   ❤️ 1
    从你的描述来看,
    不加,问题不大。
    因为所有调用的地方都有验证。
    用户不可能直接跳过验证去运行函数。
    前面已经验证过一次,后面再验证一次,更加安全,更加放心。
    后面不验证,我也觉得没有问题。
    mostkia
        6
    mostkia  
    OP
       2020-04-13 12:53:04 +08:00
    @alex321 好的,是的,作为复用的片段放在文件内的,本身没有执行的需要,谢谢,我会参考一下的
    @cydian 嗯,加了感觉比较繁琐,而且真的这样部署,里面也不会放任何涉及数据的敏感的操作,无非是一些复用的功能,但直接暴露不做权限的 php 功能片段总觉得有些怪异,所以探讨一下这方面相关的东西。
    mostkia
        7
    mostkia  
    OP
       2020-04-13 13:05:32 +08:00
    @chinvo 有时候也迫不得已啊,业务结构不是自己定的。虽然因为业务结构原因,直接忽略也是可以的,但问问清楚更放心,也更负责一些,搞懂了没坏处。
    qq292382270
        8
    qq292382270  
       2020-04-13 13:42:36 +08:00   ❤️ 1
    参考 discuz 的代码:
    可被访问的文件: define('XXXXXX', true);
    模块文件: if (!defined('XXXXXX')) {
    exit('请勿单独访问本页面');
    }
    mostkia
        9
    mostkia  
    OP
       2020-04-13 14:08:52 +08:00
    @qq292382270 好的,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4962 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:52 · PVG 17:52 · LAX 01:52 · JFK 04:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.