最近天天搞DDD设计,拿PlantUml画图。 然后还要兼职解决疑难杂症... 刷Leetcode 好久没写博客了。

今天写写最近解决比较头疼的一个问题。

博主的公司用了语雀(https://www.yuque.com/) 做知识库,遇到了个巨坑。

本着公司资料保密的原因,公司专门购买了空间(会给单独域名)。原来设想在空间中设置只允许沙盒出口地址访问,然后在沙盒中设置只能访问该空间,这样完美地把资料放在沙盒里面。

但是墨菲定律来了:

1. 语雀引了一堆OSS各种不同域名。(怎么收集所有的域名开通网络)

2. 语雀登录需要跳转到个人语雀地址。(意味着登录空间必须开启 https://www.yuque.com/ 如果打开的话可以把空间里的资料下来放到个人空间里)

3. 沙盒用的4层防火墙对于语雀这种多个域名解析到一个ip的完全做不了限制(我们的空间和www.yuque.com用nslookup 查看是同一个ip地址 4层防火墙(tcp)无法感知到域名)

OK,本来以为只是配置网络策略的问题现在复杂了(不得不先吐槽一下现在好多Saas平台都是交叉调用 美名中台对别的公司网络策略配置得有多头疼)。

问题1很好解决,写一个谷歌插件,监听所有http请求,去重域名,点点语雀就收集了。 关键收集代码如下(在背景js中)

let domains=new Set();
chrome.webRequest.onBeforeRequest.addListener(function (details) {//这一行改成data_works的地址if (details.initiator == "https://www.yuque.com") {let domain = details.url.replace(/.*?\/\/(.*?)\/.*/, '$1');let protal = details.url.replace(/(.*?)\/\/.*/, "$1");if (!domains.has(protal+"#"+domain)) {console.log(protal, domain);domains.add(protal+"#"+domain);}}},{ urls: ["<all_urls>"] },["blocking"]
)

问题3也好解决,搞一个http代理。 因为复杂的操作现有的产品无法实现,所以用Netty自己撸了一个(这里有后续)。

代码比较长就不放了。

问题2当时有一种很有意思的解决方案:基于代理劫持网站到自己的反向代理上,然后反向代理上过滤url(只允许login不允许其他页面).

最后因为证书的问题没采用(因为没有语雀的私钥证书),所以会不安全。谷歌不让访问,要输入thisisunsafe秘籍。

反向代理实现。

正向用劫持以后不安全,而且登录会失败,语雀做过什么校验。最终还是失败了。

就在这时候我在想http是无状态的。那么是不是我不需要在沙盒里开放www.yuque.com. 我只要在外面把cookie copy进来就ok了呢。

最后验证成功!

cookie copy不能在js里直接读,因为读不到详细的信息。还得依赖谷歌插件。

核心的bg代码如下 读取和写入cookie的(当然 和tab也 还有注入js的代码省略了):

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {if (request.opt == "get") {chrome.cookies.getAll({ url: sender.origin }, (data) => {let json = [];for (let c of data) {json.push({url: sender.origin, name: c.name, value: c.value, domain: c.domain, path: c.path, secure: c.secure, httpOnly: c.httpOnly,expirationDate: c.expirationDate, storeId: c.storeId})}chrome.tabs.sendMessage(sender.tab.id, JSON.stringify(json));});}else if (request.opt == "set") {for (let c of request.data) {chrome.cookies.set(c);}}
});

可怜我一个java开发,又搞网络又搞谷歌插件。今天netty写http代理明天想着要不要写dns。

知识面宽一点,解决问题的方法就多一点。在墨菲定律充斥的软件行业,可能还需要广的知识面才能成为问题攻坚人员。共勉!!!

阿里云语雀空间防泄露(关于墨菲定律的演变 netty自撸httphttps代理 Cookie Copy方案始末)相关推荐

  1. TikTok超越Facebook引领全球;传阿里云私自将用户注册信息泄露给第三方;Vivo百万年薪招聘工程师......

    TikTok 超越 Facebook 引领全球 英国<卫报>近日刊发了一篇评论,文章指出TikTok(抖音海外版)正在成为新时代的Facebook. TikTok悄然成为了全球顶级科技产品 ...

  2. 阿里云盾特点及防DDoS攻击服务介绍

    阿里云盾特点及防DDoS攻击服务介绍 云盾是阿里巴巴集团多年来安全技术研究积累的成果,结合强大的威胁发现和分析能力,为用户提供一站式安全服务.云盾是阿里云产品的统称,核心产品是安骑士.DDoS防护.W ...

  3. 《墨菲定律(Murphy‘s Law)》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=黄金法则+生存智慧+马太效应+口红效应+羊群效应+二八法则+人工智能+立钻哥哥+==)

    <墨菲定律> <墨菲定律> 版本 作者 参与者 完成日期 备注 YanlzLaw_Murphy_V01_1.0 严立钻 2019.10.01 ##<墨菲定律>发布说 ...

  4. 高级程序员必会的程序设计原则 —— 墨菲定律及防呆设计

    前言 如果你或你带领的团队经常会写出一些BUG,日常不是在解决BUG就是在解决BUG的路上,那么你的项目一定是应验了墨菲定律,并且在开发时并没有足够考虑防呆设计.团队越是疲于奔命,错的越是多. 简记 ...

  5. root域名服务器 gtld服务器_购买阿里云域名和空间服务器实操

    1.域名购买很简单 先查询域名,打开阿里云官网,点击搜索框上方的域名,输入你想要购买的域名,比如想购买http://www.susubang123.com ,就在搜索框内输入再查询即可: 查询结果会显 ...

  6. 开启阿里云对象存储OSS防误删新功能,保护您珍贵的数据。

    一.背景 阿里云对象存储 OSS 是保存海量数据的平台,支持丰富的应用.在使用过程中难免会遇到误操作.程序 Bug.覆盖写等导致数据被删除的场景,对于数据的丢失会非常着急,后果也非常严重,甚至某些情况 ...

  7. 阿里云盘1T空间存储免费领取!!!

    前言 PanDownload的结束,BD网盘的会员时代-不,是超级会员时代来临了.原以为一个Pan倒下,会有千千万万的Pan站起来,我左等右等,最后还是忍不住投入了超级会员的怀抱.那一刻,我感受了到了 ...

  8. 快开启阿里云对象存储 OSS 防误删新功能

    一.背景 阿里云对象存储 OSS 是保存海量数据的平台,支持丰富的应用.在使用过程中难免会遇到误操作.程序 Bug.覆盖写等导致数据被删除的场景,对于数据的丢失会非常着急,后果也非常严重,甚至某些情况 ...

  9. 阿里云服务器储存空间不足解决方案

    1.重新启动服务器再看看是不是不足 2.查看服务器空间使用情况    df -h 使用tmpwatch命令删除占用空间的文件 tmpwatch  –  removes  files  which ha ...

最新文章

  1. 纯数学教程 Page 203 例XLI (6)
  2. KPI在小型产品团队中的实践
  3. 一 MVC - HtmlHelper
  4. java运行环境_Windows系统java运行环境配置 | 吴文辉博客
  5. 定位系统服务器,android系统定位服务器地址
  6. window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法
  7. 语文招教考试-古今中外神话故事汇总,教育心理学知识点
  8. Mac外接显示器问题解决
  9. 关于-webkit-的一些用法
  10. 【11】processing-曲线(中文)
  11. 《windows核心编程》第6章 线程基础
  12. imgareaselect+php实现图片裁剪保存
  13. Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
  14. 查看phpinfo方法
  15. 动漫培训学费一般多少钱
  16. Linux_操作系统-基础操作-教学
  17. 可能是最优雅的分割线实现方式CSS实现
  18. 如何查询Office版本号
  19. 突然悟到了“追求卓越”的真谛
  20. 在树莓派上使用GPS模块

热门文章

  1. linux mediainfo java,linux下安装mediainfo
  2. VLAN虚拟局域网配置
  3. 金融帝国2(Capitalism2)完美中文版下载
  4. python背景怎么自定义铃声_Python 制作音乐高潮副歌提取器
  5. 使用windows优化大师清理垃圾文件后,windows2008乱码的问题。
  6. IDEA操作小乌龟(SVN)
  7. uniapp 录屏功能实现
  8. dita编写工具有哪些_我们已经有了美好的事情,还有其他一些原因不编写内部操作工具...
  9. 【b站黑马程序员C++视频学习笔记-多态案例二-制作饮品】
  10. 机器学习之KNN结合微信机器人实现手写数字识别终极API