825 Star 2.8K Fork 1.3K

Discuz / DiscuzX

Merged
!403 优化 HTTPS兼容性优化

老周部落:PR_Optimize_Https_Support Discuz:master

老周部落 Created on: 2020-03-29 22:46
增强/enhancement
Reviewer 134128 discuzx 1578919084 134392 zoewho 1578919099 134400 3dming 1578919100 146896 lootan 1578919519 1157835 comsenzdiscuz 1578943409 5247157 oldhuhu 1578983196   Tester 5247157 oldhuhu 1578983196

本PR基于@耐小心 的PR进行了扩展,在此感谢原PR提供者的工作,地址为 https://gitee.com/ComsenzDiscuz/DiscuzX/pulls/191

考虑到部分站点可能采用半程HTTPS方式实现HTTPS改造(用户到中转节点为HTTPS,中转节点卸载HTTPS,通过HTTTP方式回传到业务服务器),例如启用类似Cloudflare的Flexible SSL模式,或者采用Nginx、Squid等反向代理软件代理站点,导致站点HTTPS访问出现页面异常(CSP拦截CSS/JS加载)的问题发生。

本PR添加了更灵活的HTTPS判断方式,除支持标准的SERVER["HTTPS"]之外,还支持了SERVER["HTTP_X_FORWARDED_PROTO"]、SERVER["HTTP_SCHEME"]、SERVER["HTTP_FROM_HTTPS"]等常见的网页请求方式透传头部,以及基于SERVER["SERVER_PORT"] == 443的灵活判断方式,方便部分配置不合规的Nginx + PHP-FPM用户顺利使用。

同时考虑到部分HTTPS站点本身具有大量存量HTTP连接,因此导致HTTPS无法显示绿锁,本PR增加了支持返回在HTTPS环境下请求浏览器升级HTTP内链到HTTPS的CSP策略,帮助用户解决因存量资源为HTTP链接导致绿锁消失的问题。

安全性提示:考虑到安全性问题,除非服务器与CDN/代理服务器之间采用使用加密技术建立的虚拟专用网或安全的内部网络连接,否则不建议采取用户到CDN/代理服务器采取HTTPS方式,而CDN/代理服务器到站点采用HTTP方式(Cloudflare的Flexible SSL模式)进行回程,尤其是采取HTTP协议进行公网回程。此种回程方式具有一定的安全隐患,由于公网环境的不确定性,HTTP方式传输的数据包可能在CDN/代理服务器与站点之间被篡改或窃听,轻者插入广告内容,重者可能会插入病毒木马代码或窃取站点数据。

兼容性提示:['output']['upgradeinsecure']选项与部分自定义CSP策略不兼容,如果您的站点计划配置不兼容的CSP策略,建议您关闭此选项后手动配置CSP策略。

关联论坛:
https://www.discuz.net/thread-3848521-1-1.html
https://www.discuz.net/thread-3849681-1-1.html
https://www.discuz.net/thread-3849792-1-1.html

关联Issue:
https://gitee.com/ComsenzDiscuz/DiscuzX/issues/IP070
https://gitee.com/ComsenzDiscuz/DiscuzX/issues/I1CZGJ

0 comments, 1 participants 1773794 laozhoubuluo 1594507411

Show action logs Hide action logs
oldhuhu merged Pull Request 2020-03-30 10:58
oldhuhu check passed 2020-03-30 10:58
oldhuhu test passed 2020-03-30 10:58
老周部落 updated description 2020-03-29 22:52
老周部落 updated description 2020-03-29 22:52
老周部落 updated description 2020-03-29 22:48
老周部落 assigned tester oldhuhu 2020-03-29 22:46
老周部落 assigned reviewer 湖中沉 2020-03-29 22:46
老周部落 assigned reviewer oldhuhu 2020-03-29 22:46
老周部落 assigned reviewer monkeye 2020-03-29 22:46
老周部落 assigned reviewer Discuz! 2020-03-29 22:46
老周部落 assigned reviewer LooTan 2020-03-29 22:46
老周部落 assigned reviewer comsenz-service 2020-03-29 22:46
老周部落 assigned reviewer DiscuzX 2020-03-29 22:46
老周部落 set priority to Secondary 2020-03-29 22:46
老周部落 added label enhancement 2020-03-29 22:46
PHP
1
https://gitee.com/Discuz/DiscuzX.git
git@gitee.com:Discuz/DiscuzX.git
Discuz
DiscuzX
DiscuzX

Search

102255 3a0e046c 1850385 102255 7aaa926c 1850385