帖子

Memorial Edition

查看: 88|回复: 6

建议将正版验证改为基于皮肤的方式

[复制链接]

Lv.8 考古家

人气
289 点
金粒
841 粒
宝石
3 颗
爱心
23 颗
钻石
880 颗
贡献
0 点
发表于 昨天 01:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我不认为直接向第三方授予登录账号的权力是合适且尊重用户隐私的方案, 由此提出一种以玩家皮肤作为载体的验证方式
  1. +------------------------------------------------------------------------------+
  2. |                                                                              |
  3. |           mcbbs.co                 User                     Minecraft        |
  4. |               |                      |                          |            |
  5. |               |                      |                          |            |
  6. |               |      User Name       |                          |            |
  7. |               |<---------------------+                          |            |
  8. |               |                      |                          |            |
  9. |   Encode      |    Skin with Load    |                          |            |
  10. |               +--------------------->|                          |            |
  11. |               |                      |                          |            |
  12. |               |                      |        Set Skin          |            |
  13. |               |                      +------------------------->|            |
  14. |               |                      |                          |            |
  15. |               |         OK           |                          |            |
  16. |               |<---------------------+                          |            |
  17. |               |                      |                          |            |
  18. |               |     Fetch Skin       |                          |            |
  19. |               +----------------------+------------------------->|            |
  20. |               |                      |                          |            |
  21. |               |     Skin with load   |                          |            |
  22. |               |<---------------------+--------------------------+            |
  23. |               |                      |                          |            |
  24. |               |                      |                          |            |
  25. |   Decode      |                      |                          |            |
  26. |     &         |                      |                          |            |
  27. |   Verify      |                      |                          |            |
  28. |               |                      |                          |            |
  29. |               |                      |                          |            |
  30. |               |                      |                          |            |
  31. |               v                      v                          v            |
  32. |                                                                              |
  33. +------------------------------------------------------------------------------+
复制代码

此处的负载可以是一个有时间限制的验证码, 也可以是基于硬编码在插件代码中的非对称加密密钥对, 通过签名玩家名称+时间戳+填充内容, 或者是JWT
一个4096位的密钥输出是4096位, 这对于无损的64*64 rgba来说是完全放得下的
我没有了解过论坛的实现, 但是似乎对于RSA加解密php提供了原生实现 Encrypt and Decrypt text with RSA in PHP


这个方案逻辑简单, 不需要数据储存, 而且提供了更高的隐私



Lv.2 采石匠

人气
0 点
金粒
6 粒
宝石
0 颗
爱心
0 颗
钻石
10 颗
贡献
0 点

Java正版勋章Windows 10正版勋章

发表于 昨天 11:06 | 显示全部楼层
逻辑是不是真的简单我不知道,但是用户体验真的屌差
以及,你是不是忘了 Mojang 的 CDN 缓存

点评

首先, 我们只需要让玩家保存一张图片, 然后弹一个链接到minecraft.net, 或者他们爱用什么启动器用什么启动器, 这个体验很差吗? 其次, 我重设皮肤之后马上进入服务器, 皮肤已经更新了, 这是否能证明我们可以忽略 CDN  详情 回复 发表于 昨天 19:13
回复

使用道具 举报

Lv.8 考古家

人气
289 点
金粒
841 粒
宝石
3 颗
爱心
23 颗
钻石
880 颗
贡献
0 点
 楼主| 发表于 昨天 19:13 | 显示全部楼层
SSSSSteven 发表于 2025-12-1 11:06
逻辑是不是真的简单我不知道,但是用户体验真的屌差
以及,你是不是忘了 Mojang 的 CDN 缓存 ...

首先, 我们只需要让玩家保存一张图片, 然后弹一个链接到minecraft.net, 或者他们爱用什么启动器用什么启动器,  这个体验很差吗?
其次, 我重设皮肤之后马上进入服务器, 皮肤已经更新了, 这是否能证明我们可以忽略 CDN 的影响?

点评

可以说明你的CDN缓存周期比较短,或者你的运气比较好。  详情 回复 发表于 昨天 23:43
回复

使用道具 举报

Lv.2 采石匠

人气
0 点
金粒
6 粒
宝石
0 颗
爱心
0 颗
钻石
10 颗
贡献
0 点

Java正版勋章Windows 10正版勋章

发表于 昨天 19:34 | 显示全部楼层
WisW 发表于 2025-12-1 19:13
首先, 我们只需要让玩家保存一张图片, 然后弹一个链接到minecraft.net, 或者他们爱用什么启动器用什么启 ...

听起来简单,但是实际操作上要打开四个网页点击十次鼠标,还要涉及到一次文件下载和一次文件上传,没有五分钟根本搞不定
而且完成验证之后用户还要把自己原先皮肤换回来,这就又涉及到了至少两次鼠标点击和一次文件上传,如果用户没有保存自己原先的皮肤,那他就换不回来了,这样还可能打击用户进行正版验证的积极性
回复

使用道具 举报

Lv.9 牧场主

人气
983 点
金粒
1969 粒
宝石
2 颗
爱心
47 颗
钻石
1582 颗
贡献
8 点

Java正版勋章Windows 10正版勋章

发表于 昨天 23:42 | 显示全部楼层
1. 玩家未必想换皮肤
2. 纪念版通过OAuth获取的信息似乎只可读不可写,隐私问题不严重
至于数据储存,纪念版的活跃用户基数不大,由于正版验证产生的空间成本可忽略不计。
回复

使用道具 举报

Lv.9 牧场主

人气
983 点
金粒
1969 粒
宝石
2 颗
爱心
47 颗
钻石
1582 颗
贡献
8 点

Java正版勋章Windows 10正版勋章

发表于 昨天 23:43 | 显示全部楼层
WisW 发表于 2025-12-1 19:13
首先, 我们只需要让玩家保存一张图片, 然后弹一个链接到minecraft.net, 或者他们爱用什么启动器用什么启 ...

可以说明的CDN缓存周期比较短,或者你的运气比较好。
回复

使用道具 举报

Lv.8 考古家

人气
289 点
金粒
841 粒
宝石
3 颗
爱心
23 颗
钻石
880 颗
贡献
0 点
 楼主| 发表于 1 小时前 来自手机 | 显示全部楼层
teddyxlandlee 发表于 2025-12-1 23:42
1. 玩家未必想换皮肤
2. 纪念版通过OAuth获取的信息似乎只可读不可写,隐私问题不严重
至于数据储存,纪念 ...

1. 提供两种方案给玩家并注明优缺点,oauth不符合最小权限原则,皮肤不方便而且可能造成皮肤永久丢失,可能不稳定,代码我来写
2. 先不提它对于xbox有多少操作权限,纪念版的机制可以获取一个有效期一天的token,可以用于登陆任意没有其他验证的正版mc服务器
3. 我认为mojang的网络被设计成皮肤更改立即呈现,我这件事情干过很多次了,我甚至写过一个程序在hypixel密室杀手频繁更改皮肤来减弱其他玩家对于我皮肤和用户名的关联度,从而减少暴露概率,每次这个至少我本地看到的都生效,我认为mojang没有理由设计一个去中心化的架构,这个更改应该是统一的,同时我昨天分析了一下mojang的皮肤获取,首先通过玩家uuid请求一个包含总体外观的端点(https://sessionserver.mojang.com/session/minecraft/profile/),这里面包含了请求皮肤和披风的url等,我更改之后某个相应头由tcp hit变为了tcp miss,由此可见这个端点可以说几乎没有缓存,而皮肤特定的textures.minecraft.net的缓存与这个无关因为路径本身就是不同的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

想一个人有多想念,那又是文字失效瞬间。

Archiver|小黑屋| MCBBS纪念版 ( 新ICP备2024014954号|兵公网安备66010002000149号 )|隐私政策| 手机版

GMT+8, 2025-12-2 22:52 , Processed in 1.848821 second(s), 33 queries , Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2025 MCBBS纪念版 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

返回顶部