为了管理公司公共应用账号,差点手搓一个浏览器

本文涉及的产品
数据安全中心,免费版
简介: 任何一个公司都存在或多或少的公共账号,或者叫做共享账号,定义就是一个系统,有限个账号,多个人使用。原因多种多样,比如常见的一些自媒体号(知乎号、抖音号、百家号等等)用于企业日常的宣传经营,这些平台企业只能注册一个账号,而这一个账号老板要使用、多个运营人员也要使用。又比如招聘网站(BOSS 直聘、拉钩、猎聘等等)的管理员账号,往往也是使用公司特有的电话号码或者公共邮箱注册,然后给多个人共享使用。

一、任何一个公司都存在公共账号

任何一个公司都存在或多或少的公共账号,或者叫做共享账号,定义就是一个系统,有限个账号,多个人使用。原因多种多样,比如常见的一些自媒体号(知乎号、抖音号、百家号等等)用于企业日常的宣传经营,这些平台企业只能注册一个账号,而这一个账号老板要使用、多个运营人员也要使用。又比如招聘网站(BOSS 直聘、拉钩、猎聘等等)的管理员账号,往往也是使用公司特有的电话号码或者公共邮箱注册,然后给多个人共享使用。

image.png

二、所谓的公共账号,就是账号密码都公开使用

账号共用,其实是个挺“可怕”的事情,举个极端的例子,你能想象把你的微信账号共享给别人一起使用吗。当然企业维度的账号共享问题,倒不是微信这种个人隐私的顾虑,主要是在管理成本和数据安全和其它风险角度的考虑。我们按上图的示意,假设几种可能发生的情况:

  1. 员工 A 离职后会发生什么

管理员连夜修改知乎的账号密码,然后给员工B和C发送新的账号密码。

  1. 员工 A 转岗

管理员连夜修改知乎的账号密码,然后给员工B和C发送新的账号密码。

  1. 知乎密码发生了不明原因的泄露

管理员连夜修改知乎的账号密码,然后给员工A、B和C发送新的账号密码。


我们能够看到,任何人员和系统账密的变动,管理员就要重复更改密码、公示密码。那我们假设系统数量和员工数量都不断上涨的时候,管理员会是个如何的心如死灰。

image.png

三、数据安全怎么会允许账号密码漫天飞!

上面讲的管理员的问题,是大多数企业都在经历的痛苦挣扎,大家看到的是管理的复杂度或者说叫做运营成本,但如果搬出“数据安全”的利剑,那么这一切都不应该存在。因为只要有一个员工有意或无意地泄露了密码,而公司其它人都无所知的情况下,管理员的所有操作都变得徒劳而没有意义。这,就是老板给我的的看似不可能完成的任务。


老板:你,去解决公司账号共用的问题,不要让大家都知道密码,另外公司要降本增效,这件事没有太多预算,你自己看着办!

:...好的老板(你是老板你说什么就是什么罗)

四、思如泉涌之密码管理软件

接到任务,我第一个想到的就是密码管理软件,不就是账号密码管理嘛。那不是一大堆工具,行业内做得比较好而安全的我首先想到的是 1Password (https://1password.com/zh-cn/ )和 Lastpass(https://www.lastpass.com/),反正有免费版本注册了先试用看看,如果能满足需求,再想想看能不能搭建开源的版本,不花钱,老板肯定要表扬我的,想想都开心。

试用下来,这些密码管理工具确实比现在公司内部人工管理有很大优势

  1. 都有企业版本,可以方便管理员去共享账号给员工,不用在拉群或者私聊给每个员工发账号了。
  2. 有一定账号使用情况的管理和视图。
  3. 可以设置很复杂的密码,不用担心简单密码被破解。
  4. 员工不需要记忆账号密码,选择登录就行。

image (2).png

(员工选择一个账号就可以实现自动密码填充登录)

有这么多优势,员工和管理员都受益,但是却有个致命的数据安全问题,那就是“每个人都知道密码”,可以通过账号管理软件内部,或者插件,或者浏览器开发者模式,轻易的就能拿到密码。老板要求的不能大家都知道密码的底线要求,最终只能弃用这种方案。


五、思如泉涌之自己实现密码管理软件

其实上面密码管理软件的思路是没有问题的,只是他们无法解决隐藏密码的问题,我只要沿着这个思路解决这个问题就好了。那我倒不如找个开源的密码管理软件,简单修改做到不让密码可见不就好了!


经过一番对比,我选择了难度相对适合的项目 bitwarden https://github.com/bitwarden。我准备读读里面的源码,把界面上能显示密码的地方给禁用掉,当然也包括其它能把密码拷贝出来的功能。


就在我一腔热血读源码的时候,突然一个念头闪过,如遭雷劈!即使我实现了密码管理软件的密码不可见,在系统登录页面,通过浏览器的开发者模式修改密码框属性不是也能拿到密码吗!

六、思如泉涌之自己实现浏览器

其实上面自建密码管理软件的思路是没有问题的,只是无法解决浏览器的密码屏蔽问题,我只要沿着这个思路解决这个问题就好了。那我倒不如找个开源浏览器,简单修改做到不让密码可见不就好了!比如禁用开发者模式,想想都激动,我真是个天才。

于是,我下载了 chromium 的源码(https://chromium.googlesource.com/chromium/src.git/),准备大干一场。当我看到 20G 的 chromium 源码的目录,且搭建编译环境的配置异常复杂的时候,于是,我放弃了。。。

image (4).png

(chromium 源码地址)

七、思如泉涌之找个第三方的办公安全浏览器

其实上面自建浏览器的思路是没有问题的,只是我放弃了,我只要沿着这个思路解决能禁用浏览器开发者模式的问题就好了。嗯嗯。

于是,我开始搜索第三方办公安全浏览器,竟然都能满足这个安全管控的要求。比如 360 的安全浏览器 https://browser.360.cn/、奇安信的安全浏览器 https://qianxin.com/product/detail/pid/420,还有个数影的办公安全浏览器 https://www.dsphere.com.cn/office-browser(意外发现,也是救赎之路)。这些安全浏览器都能禁用开发者模式,甚至还包括远程调试模式等我不曾想到过的漏洞。

从官方介绍上来看,似乎都能满足需求,遗憾的是只有数影星球这一家是支持直接注册试用的,于是我马不停蹄要去验证一下。这就让我发现惊喜了!

7.1  通过浏览器再也看不到密码


通过浏览器可以拿到密码的方式也有多种,比如通过网页源代码、通过开发者模式修改密码框属性,这些都可以通过安全浏览器策略去禁用。不过这些高级安全功能默认不开放的,需要官网联系客服进行试用开通。

image (5).png

打开开发者模式,将密码框类型属性从password修改为text,就可以直接显示密码了。

7.2 应用账号管理

我原本的目标是找个可以禁用开发者模式的浏览器,然后配合自己改造过的开源账号管理软件,实现公司公共账号的安全管理。但是让我意想不到的是,数影办公浏览器已经自带了企业级别的账号分配管理能力(不是浏览器那种简单记住密码功能),这让我也省了自己实现账密管理软件的麻烦,实在是意外之喜。

image (6).png

7.3 网站自己也有显示密码的功能

原来密码管理这事实在没那么简单,还有很多我之前都没有想到过的情况,比如下面这种系统本身就提供了显示密码的功能,又让密码暴露无遗了。这也算是惊喜发现之二了,数影这个工具实在是考虑得挺周全,它本身就已经兼容了这种场景,用数影打开系统就会发现,这样的小眼睛功能已经被自动去除了,这个必须点赞。

image (7).png

7.4 手机验证码动态登陆

账号密码登陆是我们习以为常的,但是现在的确越来越多的应用开始只支持手机动态验证码登录,这种情况下前面所说的所有方案都起不了作用了。我抱着试一试的心态联系了官方客服才发现,这又是另一个高级功能,现在商业化产品套路也确实挺深的,都是一点一点功能给你。没有去申请开通,从官方答复的方案来讲确实是行之有效,其实就是公司内部配一个专属的手机,在手机里内置短信转发的APP,把短信转发到浏览器对应的员工通知里就行了,技术实现是不难的,我们目前还没有这种场景,也就没有亲自去验证了。

7.5 动态二维码

和短信验证码类似,有些系统在 PC 端只支持其手机 APP 扫码登录,这样的应用比较少,我们也还没遇到,要解决这类问题,其原理和短信的转发一样,不过技术难度要大得多。


想起最初打算自己改造个密码管理软件和浏览器,实在是想得过于简单了。

目录
相关文章
|
5天前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
|
5月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
|
5月前
|
存储 人工智能 应用服务中间件
Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
【5月更文挑战第30天】Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
71 2
|
4月前
|
数据采集 运维 安全
指纹浏览器与虚拟机的区别及在跨境电商中的应用
指纹浏览器与虚拟机在跨境电商中扮演不同角色。指纹浏览器通过独特设备指纹防止账号关联,适合多账号安全管理;虚拟机提供隔离环境,用于测试和开发,但需更多资源和技术管理。商家应根据需求平衡安全、效率与成本。
|
5月前
|
Web App开发 前端开发 JavaScript
构建跨浏览器兼容的前端应用:技术实践与挑战
【5月更文挑战第16天】构建跨浏览器兼容的前端应用是应对浏览器差异和多样性的挑战。使用现代框架(如React、Vue)能自动转换代码,编写可移植的Web标准代码,结合浏览器兼容性测试工具和Polyfill解决旧浏览器支持问题。关注浏览器更新,应对性能、API差异和样式问题,采用渐进增强、条件判断和CSS Reset策略确保应用在各种浏览器上运行良好。
|
12月前
|
JavaScript 前端开发
TypeScript 可以编译成纯 JavaScript,并且可以在任何浏览器上运行,具体应用案例解析
TypeScript 可以编译成纯 JavaScript,并且可以在任何浏览器上运行,具体应用案例解析
115 1
|
10月前
|
前端开发 JavaScript Java
Web应用中浏览器与服务端的编码和解码
Web应用中浏览器与服务端的编码和解码
125 0
|
自然语言处理 JavaScript 前端开发
使用 SAP Business Application Studio 在浏览器环境里开发 SAP UI5 应用试读版
使用 SAP Business Application Studio 在浏览器环境里开发 SAP UI5 应用试读版
|
XML JavaScript 前端开发
如何在浏览器里开发并运行 SAP UI5 应用
如何在浏览器里开发并运行 SAP UI5 应用
如何在浏览器里开发并运行 SAP UI5 应用
|
11月前
|
数据采集 开发框架 JavaScript
基于.NET Core内置浏览器窗体应用程序界面框架
基于.NET Core内置浏览器窗体应用程序界面框架
92 0