V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  psydonki  ›  全部回复第 1 页 / 共 2 页
回复总数  36
1  2  
@particlec 西欧这边 15-20 欧,估计英国也差不多 [ doge ]
@TimPeake 电动车没怎么见过,倒是电动自行车越来越多…小年轻一个个在自行车道上“开”的飞快,有点鬼火少年的意思了
2022-12-08 19:10:41 +08:00
回复了 MXXXXXS 创建的主题 北京 公司有阳性还来继续上班
不是开玩笑。

按照正常的剧情,应该很快有第一波高峰,大约 1 月初,大家都会经历一遍身边陆续有人感染。

理性的说,因为医疗资源可能发生挤兑,最好能够避免在这个期间感染,或早或晚。
最终大家可能都得一次,如果是年轻人,真的可以考虑让自己早一点感染,之后有至少 6 个月免疫期,从而避开高峰。

你同事给你机会呢...
2022-06-29 11:05:34 +08:00
回复了 Martin9 创建的主题 Kubernetes k8s pod 莫名奇妙异常
@Martin9 感觉跟我现在遇到的问题很像…目前的想法是看能不能用 ephemeral container, 挂载到出问题的 pod 上, 再通过 netstat 看具体的连接状态。

https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container
terraform 貌似就是为了解决这个问题的

https://i.imgur.com/gIw11Fm.png
2022-06-15 23:42:14 +08:00
回复了 Chaconne 创建的主题 程序员 想在 github 上发布某视频监控产品的漏洞/设计缺陷
github 上中文的内容也很多,新建一个公开的仓库,修改 readme.md 就可以。
有监督才会有进步
2022-06-03 12:08:09 +08:00
回复了 Eyon 创建的主题 问与答 没搞懂 HTTP 请求的安全验证,求指导!
@byte10 估计你没看懂我的回答...

图片在这个帖子加不上了,可以查看我回复历史,最近的那个图片;


对于普通用户而言,获得自己的短期 access_token 没有问题;当然也可以 copy 出来通过 postman 请求后端的资源;
比如像这样的 header ,Authorization: Bearer {{jwt}}


OP 这样实现的问题在于同时暴露了后端服务的地址和长期 /固定 token ;
最明显的隐患在于,假设用户 A 获取自己信息的 url:
https://api.abc.com/users/12345
headers:
Authorization: Basic {{base64 encoded username:password}}

假设 12345 是用户 id, 我完全可以猜测 id 就是一个递增序列,通过 postman 去请求其他人的信息;
https://api.abc.com/users/12346
headers:
Authorization: Basic {{base64 encoded username:password}}

@Eyon 不确定解释清楚了没有,如果你们团队的架构是微服务的话,你可以 Google 一下 azure api gateway.
2022-06-03 05:52:28 +08:00
回复了 Eyon 创建的主题 问与答 没搞懂 HTTP 请求的安全验证,求指导!
OP 你是对的,确实不应该将后台服务的 token 直接暴露给浏览器。
感觉你们团队也在摸索前后端分离和微服务...


你可能有点混淆了 Authorization 和 long term token;

拿 jwt 最佳实践来说,Authorization 中应该传登录行为产生的 access_token ( jwt ),一般过期时限为 15~60 分钟;具体步骤参见 @libook 41 楼。

long term token 一般是用在 Server to Server 通信时的简单校验; 如下图中 gateway 和 Service 之间。


所以一般微服务框架中会存在一个 API gateway 的角色,用来向前端返回和校验 jwt ;
同时充当反向代理,与后台服务进行交互,如果后台服务也是暴露在公网的情况下,出于安全考虑就会用到 long term token;


一图胜千言,


当然在实际的项目中,还是根据自己的需要,可以选择对应的云服务或者自己简单实现一个;
我自己 Next.js 项目中的样例:

```
// src/pages/api/v1/[...param].js
import axios from 'axios';

export default async (req, res) => {
const instance = axios.create({
baseURL: process.env.LC_API_BASE_URL,
headers: {
'token': process.env.LC_API_TOKEN,
'Content-Type': 'application/json',
}
});

try {
var response;

if (req.method === "GET") {
response = await instance.get(req.url);
}
else if (req.method === "POST") {
response = await instance.post(req.url, req.body);
}
else if (req.method === "PUT") {
response = await instance.put(req.url, req.body);
}
res.status(200).json(response.data)
} catch (err) {
var response = err.response;
res.status(response.status).json(response.data);
}
}

```
2022-06-03 04:40:44 +08:00
回复了 isCyan 创建的主题 V2EX 攻略:教你如何在 V2EX 发图片/插链接/插代码/插视频(第二版)
2022-06-03 04:37:33 +08:00
回复了 isCyan 创建的主题 V2EX 攻略:教你如何在 V2EX 发图片/插链接/插代码/插视频(第二版)
2022-06-03 04:36:37 +08:00
回复了 isCyan 创建的主题 V2EX 攻略:教你如何在 V2EX 发图片/插链接/插代码/插视频(第二版)
2022-05-31 17:00:10 +08:00
回复了 AllenHua 创建的主题 哔哩哔哩 聊聊当下的 B 站
B 站广告业务太过于理想化。

作为一个 b 站重度使用者和浮亏超过 50%的韭菜,唯一能做的,就是给制作精良的恰饭视频一键三连 :(
希望它能把 花火平台(内容即广告) 这条路走通。

目前的弹幕氛围和习惯,还是有一些护城河的。
我不是很懂低 /无代码,感觉演示的功能跟 headless CMS 很类似。
比如:Strapi
2022-05-19 22:59:37 +08:00
回复了 hfl1995 创建的主题 程序员 居家办公两周了,已经忘记上班什么感觉了
@andong777 me too, 感觉在家挺好。
@alzee 哥们,太恶心了吧
2022-05-18 23:49:10 +08:00
回复了 CJN2021 创建的主题 随想 看完房贴文有感
中国的房价是真的畸形。
特别纳闷大搞房地产,涨价去库存的政策是怎么出台的。
怀疑是被人卖了,还帮人数线。
2022-02-17 01:10:56 +08:00
回复了 love2075904 创建的主题 Java 单体应用改造微服务疑惑求解
我理解使用 MQ 作为中间件可以很好的解决这个问题。
Sender 只负责向 MQ 发送消息,同时在 Header 里面注明消息的类型:

```json
{
"type": "email"
}
```

然后根据 header 中的类型,将消息分流到不同的 queue 。
模块 B/C 分别是不同的微服务,监听不同的 queue 就好。
vscode + Markdown
2022-02-15 01:17:02 +08:00
回复了 xQmQ 创建的主题 NGINX Nginx 做反代,设置 SSL 证书问题
推荐一下 certbot.

我都是直接 certbot ,选择你要部署的域名,它自己就搞定了...
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   856 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 20:42 · PVG 04:42 · LAX 13:42 · JFK 16:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.