当前位置: 首页 > 后端技术 > PHP

gMIS升级支持IPv4-IPv6双栈网络模式

时间:2023-03-30 03:13:56 PHP

今天是3月8日国际妇女节,祝女同胞节日快乐!新冠肺炎疫情未解除,大家平安!1.IPv6地址和与IPv4共存的双栈网络模式IPv6AddressinDot-Base62x论文发表已经快十年了,IPv6的应用逐渐从学术论文转向实验网络,从实验网络到产业部署和商业应用,最后IPv6的逐步启用,开始从网络层自下而上影响应用层。例如在gMISJimmys中,安全检查依赖于对用户请求IP的监控。当IP地址从IPv4过渡到IPv6时,应用层看到的地址可能是IPv4也可能是IPv6,尤其是在IPv6/IPv4双栈网络中(下图2)。例如,当我们在支持IPv6的网络(-myip)上查看最终用户的IP时,它可能看起来像这样:Internet协议版本4(IPv4)120.244.128.xxxInternet协议版本6(IPv6)2409:8a00:6055:b650:b5df:f4f3:36cd:xxxx是同一个用户,可能有两个IP地址,一个IPv4地址和一个IPv6地址,两者可能交替出现。在之前的部署应用中,如果检测到用户的IP地址发生变化,则可能会发生潜在的中间人攻击。面对新情况,需要更新升级程序来应对网络层变化引起的安全检测误报。一种新的网络模型的支持,从原来的单用户单IP到单用户多IP的支持,变化多、难度大,甚至容易滋生新的安全漏洞。经过对各种实现方案的反复比较,选择了下面的一种来实现对支持IPv4/IPv6双栈模式的gMISGimmies的改进。主要思路是当检测到同一个用户的IP地址发生变化时,将该用户从系统中弹出,重新使用新的IP进行认证,这样该用户也可以获得相同的授权在新的IP、IPv4或IPv6下。这样就在两个IP下都进行了用户授权验证。在用户层,两次登录后,在接下来的操作中,网络层IP地址的切换可以无缝连接,自动漫游。在系统中,两次验证的授权Token以不同的名字记录在客户端中,一般是在cookie的参数或者请求地址中,这样当用户的IP再次漂移变化时,从cookie到读取即可去对应IP下的Token。修改涉及的程序文件:A.comm/header.inc根据读取到的IP地址,判断是IPv4还是IPv6,并将判断结果标记记录在运行环境变量中。同样在$_CONFIG中。B.extra/signinup在通过用户授权验证和写入cookies或请求参数时,如果当前网络是IPv6,会在原来的Token名称后附加一个类似“v6”的标记。c.inc/session.class在对用户请求进行鉴权时,通过cookie或请求参数读取Token。如果当前网络是IPv6,则在原始Token的名称后附加一个类似“v6”的标记。扩展,推而广之,在IPv6/IPv4共存的过渡阶段,在双栈模式下,所有上层应用都需要基于用户的单一IP进行调整。这项技术是IT/Internet世界中的另一个Y2K/2000/Millennium错误问题。基于IP地址的安全验证需要修改以考虑这种新情况,类似于上述分析和升级改进。基于IP地址的用户识别有待完善;基于IP地址的统计、基于IP地址的位置识别、基于IP地址的资源调度……所有IT和互联网应用软件系统都需要重新审视单个用户生成多个IP越早越好越多越好,因为目前IPv4/IPv6的共存和过渡阶段将是一个相当长的过程,可能10年、20年,甚至50年。另外,关于IPv6Address在Dot-Base62x中的应用,例如在支持IPv6的家庭网关路由器(HomeGateway)或光猫一体机(FibreModem+Router)中,默认的IPv4地址为访问web管理控制台路径通常为:http://192.168.1.1/或http://192.168.0.1/对应IPv6地址的访问路径通常为:http://[fe80::1]/或者http://[fe80:0:0:0:0:0:0:1]/很明显,后面的IPv6地址的访问路径看起来不友好,有点乱,加方括号[]把IPv6地址括起来,和冒号:不仅唯一表示网络服务的端口号,也可能是IPv6地址的一部分。相应地,如果上述IPv6地址(fe80::1或fe80:0:0:0:0:0:0:1)用Dot-Base62x表示,其形式如下:http://x3e00.0.0。0.0.1/只有这一条,清晰无误,无缩写变量,兼容当前所有网络协议规范,不需要引入方括号[],也不会影响冒号:用于特指定义网络服务的端口号。形式上和IPv4一样,用点来区分地址段。不同的是在长度上多了两个地址段。这也是实际意义上的增加。IPv4地址由4个段组成,IPv6地址由6个段组成。同样,上述终端用户IPv6地址,InternetProtocolversion6(IPv6)2409:8a00:6055:b650:b5df:f4f3:36cd:xxxx也可以表示为Dot-Base62x地址格式:xxxx.xxxx.xxx.yyyy.yyyy.yyy这是推荐在Dot-Base62x中使用IPv6地址的主要原因之一。3、gMISJimmy的相关更新和改进A.改进连接数据库时长连接的操作;B.改进数据表记录默认状态值的描述,增加“其他”选项等;C.改进了写入用户终端Cookie的操作,增加了过期时间和有效路径范围。D、接下来@todo,使用模板引擎-Hanjst替换Smarty。-gMIS(通用管理信息系统(Jimis)是基于-GWA2(GeneralWebApplicationArchitecture,ChivaRabbit)的通用管理信息系统应用软件,具有输入输出接口可配置、开箱即用等特点。可以在gMIS上构建各种管理信息应用系统软件,如:内容管理系统(CMS)、客户资源管理(CRM)、企业资源计划管理(ERP)、办公自动化系统(OA)等,也可以是各种行业应用管理系统软件,如:人力资源管理系统(HR)、学生管理、档案管理、旅游管理、图书馆管理、商品管理和业务运营支持系统(BOSS)等。gMIS可实现零代码开发,分分钟快速搭建各类管理信息系统(MIS,ManagementInformationSystem)。-gMIS是基于-GWA2的管理信息系统(MIS)软件,具有可配置的输入和输出接口、开箱即用等特点。可在其上构建各种管理应用软件系统,如内容管理系统(CMS)、客户资源管理系统(CRM)、企业资源计划管理系统(ERP)、办公自动化系统(OA),以及不同的行业应用管理系统软件,如人力资源管理系统(HR)、学生管理、档案管理、旅游管理、图书管理、商品管理和业务运营支持系统(BOSS)等。零代码开发,-gMIS可以构建一套管理信息系统(MIS)软件在几分钟内完成。**降低成本,**提高生产力。降低成本,提高效率。-R/q2SX