纯前端的加密访问

2023-03-07 14:13:29 +08:00
 v2yllhwa

抛开各种鉴权不谈,只是想实现一个简单的全站加密(或者说授权访问)。比较常见的应用就是给朋友分享一下自己写的网站,但是不想被公开访问(考虑到可能托管在各类 pages 上面,希望可以纯前端实现)。

目前的思路是用 service worker 劫持所有的资源( html,js,css )请求,用非对称解密之后再返回。

有这种已经实现的轮子吗?或者有没有更好的方案。

3780 次点击
所在节点    奇思妙想
35 条回复
v2yllhwa
2023-03-07 15:50:23 +08:00
@liyang5945 为什么劫持所有资源不现实呢? hexo 的加密插件我知道,但是仅限于 hexo 能用吧。例如我平时写点前端的小玩意儿打包出来就不能用了。而且用框架的话,主要内容可能都在 js 里面,只加密 html 应该是不行的。
v2yllhwa
2023-03-07 15:53:50 +08:00
@jybox 看起来不错,可惜不能同时加密 js 等资源。
v2yllhwa
2023-03-07 15:55:09 +08:00
@duanxianze 主题里说过了,可能会托管在 github pages/cloudflare pages 等等,不考虑后端的配合。
v2yllhwa
2023-03-07 15:56:35 +08:00
@hingle 这个方法我确实用过。但是让我感到疑惑的是这个链接(形如 xxx.com/<uuid>)很快就被 bing 收录了,我怀疑是 edge 浏览器对用户浏览的页面进行上报了。
vizards
2023-03-07 16:03:33 +08:00
配合 webpackJsonP 的类似实现,例如重度使用此功能的 webpack5 module federation 可以实现运行时 dynamic import 进相关的 js 代码文件块(加密后),在 service-worker 层挂一个劫持逻辑做解密,或许具有可操作性?编译时要多做一步加密 jsbundle 的操作
yaphets666
2023-03-07 16:29:22 +08:00
某几个页面不要服务端渲染,#xxxx 的路由还会被收录吗?
TomVista
2023-03-07 16:39:31 +08:00
把解密方法做成油猴给朋友.
azui999
2023-03-07 17:11:55 +08:00
不想被公开访问?
把你朋友拽到你屏幕前面并捆绑住他的手脚,以免他拍照录像,
这样基本就能以绝后患了
Envov
2023-03-07 19:25:43 +08:00
我觉得题主说的方法就是很好的方法
kele999
2023-03-08 20:04:21 +08:00
叫朋友去你家看
sobev
2023-03-09 10:17:45 +08:00
github page hexo 主题,有个插件可以输入密码后访问
![]( )
xieqiqiang00
2023-03-09 11:46:19 +08:00
“比较常见的应用就是给朋友分享一下自己写的网站,但是不想被公开访问”
你需要的不是 0 信任网络么
xieqiqiang00
2023-03-09 11:48:42 +08:00
QiaTia
2023-03-09 18:05:36 +08:00
我记得 confirm ,prompt ,alert 这几个 js 方法是能中断浏览器进程, 如果想做的足够轻直接使用 prompt 足够了
akakidz
2023-03-10 10:01:50 +08:00
内容全部加密发布,给你朋友本地浏览器安装个油猴脚本,本地解密

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX