diff --git a/exports/hykilp/atom.xml b/exports/hykilp/atom.xml index 068e013a9..cb694de6a 100644 --- a/exports/hykilp/atom.xml +++ b/exports/hykilp/atom.xml @@ -2,11 +2,21 @@ https://aza.moe/life 小桂桂的回忆录 📒 - 2024-02-26T04:10:48.463405+00:00 + 2024-02-26T06:10:38.056266+00:00 python-feedgen https://aza.moe/meru_256px.png 「我们所经历的每个平凡的日常,也许就是连续发生的奇迹」 + + 3406 + 小桂桂的回忆录 📒 #3406 + 2024-02-26T06:08:45+00:00 + <p>今天把 <a href="##AquaNet">#AquaNet</a> 后端的请求验证写好啦!</p> +<p>因为官方的游戏客户端给用户提交数据的时候并没有做登录验证也没有做机器验证,所以在这之前只要暴露了你的卡号别人就可以随便发请求改你的数据。</p> +<p>今天做的请求验证实现方式是,机器 PowerOn 的时候验证 Keychip ID,给每个人的游戏返回一个独特的随机 URL 比如 <code>/gs/{token}/mai2/endpoint</code>,这样就可以不用担心熊孩子发的恶意请求追踪不到了!</p> +<p>(不过还需要想办法解决 MITM 的问题... 毕竟街机用的是没加密的 HTTP 80 <i class="custom-emoji" emoji-src="emoji/6170424195260877091.webm">🤗</i></p> + + 3405 小桂桂的回忆录 📒 #3405 @@ -99,7 +109,7 @@ Mom: we have 双层麦香鱼 at home! 3393 小桂桂的回忆录 📒 #3393 2024-02-23T04:47:28+00:00 - <p>AquaNet 绑卡做好了!感觉写了两天终于写出了一个完美的解决方案 qwq</p> + <p><a href="##AquaNet">#AquaNet</a> 绑卡做好了!感觉写了两天终于写出了一个完美的解决方案 qwq</p> <ol> <li>绑卡的时候会把存档迁移到账号上</li> <li>如果账号上已经有存档了可以选择保留哪份存档</li> @@ -179,7 +189,7 @@ Mom: we have 双层麦香鱼 at home! 3373 小桂桂的回忆录 📒 #3373 2024-02-19T12:32:08+00:00 - <p>今天把 AquaDX 的注册登录的流程写得差不多了</p> + <p>今天把 <a href="##AquaNet">#AquaNet</a> 的注册登录的流程写得差不多了</p> <p>加上了 CF Turnstile 用来防机器人,加上了 GeoLite 本地数据库自动判断用户的国家,写了登录之后的 JWT token 验证,注册域名配好邮箱之后写了一个「验证邮箱」的邮件模板。好累 <i class="custom-emoji" emoji-src="emoji/5445059765778521446.tgs">📦</i></p> <p>...结果注册一个帐号测试的时候验证邮件还被谷歌标记 spam 了,不知道怎样绕过。</p> <p>感觉写自己在意的项目和糊作业需要的精力完全不一样... 作业要写注册的话随便把用户丢进数据库里就结束了,但是做这个项目的时候每个 design decision 都犹豫了好久,比如需不需要用户名、注册的时候要让用户填用户名后设显示名还是填显示名后设用户名 url、用户名字符要不要限制成 url-safe、邮件验证要发验证码还是验证链接、要不要强制邮件验证等等等等...</p> diff --git a/exports/hykilp/index.html b/exports/hykilp/index.html index d753923dd..eae35f615 100644 --- a/exports/hykilp/index.html +++ b/exports/hykilp/index.html @@ -27,7 +27,7 @@ diff --git a/exports/hykilp/media/3406.jpg b/exports/hykilp/media/3406.jpg new file mode 100644 index 000000000..46fc827fb Binary files /dev/null and b/exports/hykilp/media/3406.jpg differ diff --git a/exports/hykilp/media/3406.jpg_thumb.jpg b/exports/hykilp/media/3406.jpg_thumb.jpg new file mode 100644 index 000000000..055e6532f Binary files /dev/null and b/exports/hykilp/media/3406.jpg_thumb.jpg differ diff --git a/exports/hykilp/posts.json b/exports/hykilp/posts.json index e8f44ad00..a35197ae5 100644 --- a/exports/hykilp/posts.json +++ b/exports/hykilp/posts.json @@ -45845,8 +45845,8 @@ { "id": 3373, "date": "2024-02-19T12:32:08", - "text": "今天把 AquaDX 的注册登录的流程写得差不多了\n\n加上了 CF Turnstile 用来防机器人,加上了 GeoLite 本地数据库自动判断用户的国家,写了登录之后的 JWT token 验证,注册域名配好邮箱之后写了一个「验证邮箱」的邮件模板。好累 📦\n\n...结果注册一个帐号测试的时候验证邮件还被谷歌标记 spam 了,不知道怎样绕过。\n\n感觉写自己在意的项目和糊作业需要的精力完全不一样... 作业要写注册的话随便把用户丢进数据库里就结束了,但是做这个项目的时候每个 design decision 都犹豫了好久,比如需不需要用户名、注册的时候要让用户填用户名后设显示名还是填显示名后设用户名 url、用户名字符要不要限制成 url-safe、邮件验证要发验证码还是验证链接、要不要强制邮件验证等等等等...\n\n总之好累,又写码写到天亮了 😴 如果自己不是这么完美主义就好了...", - "views": 65, + "text": "今天把 #AquaNet 的注册登录的流程写得差不多了\n\n加上了 CF Turnstile 用来防机器人,加上了 GeoLite 本地数据库自动判断用户的国家,写了登录之后的 JWT token 验证,注册域名配好邮箱之后写了一个「验证邮箱」的邮件模板。好累 📦\n\n...结果注册一个帐号测试的时候验证邮件还被谷歌标记 spam 了,不知道怎样绕过。\n\n感觉写自己在意的项目和糊作业需要的精力完全不一样... 作业要写注册的话随便把用户丢进数据库里就结束了,但是做这个项目的时候每个 design decision 都犹豫了好久,比如需不需要用户名、注册的时候要让用户填用户名后设显示名还是填显示名后设用户名 url、用户名字符要不要限制成 url-safe、邮件验证要发验证码还是验证链接、要不要强制邮件验证等等等等...\n\n总之好累,又写码写到天亮了 😴 如果自己不是这么完美主义就好了...", + "views": 66, "forwards": 0, "media_group_id": 13666767423210717, "images": [ @@ -45958,7 +45958,7 @@ "id": 3380, "date": "2024-02-21T08:45:34", "text": "花 ¥95 定制了网页上需要的四个图标... 虽然非常非常想自己做但是这次还是不用自己的时间精力挑战设计师的饭碗了\n\n现在我需要专注做的是在放假的这星期里把 AquaNet 写到一个能发布的状态... 看最近几天的进度似乎感觉时间可能不太够呢", - "views": 57, + "views": 58, "forwards": 0, "media_group_id": 13668041072892629, "images": [ @@ -45998,7 +45998,7 @@ "id": 3383, "date": "2024-02-22T02:47:15", "text": "今天和聊聊去 Toronto D&D 的活动让一位有经验的 DM 带我们开了一段很短的故事,真的有角色道具和场景的模型能看到我们在哪里在做什么的时候沉浸感真的好不一样。\n\n感觉这个 DM 准备得也好齐全,因为没有花太多的时间读设定,整个流程快了很多,三个小时就把他准备的故事打完了。\n\n而且听他说这些模型都是 3D 打印然后手动上色的诶,好厉害(不过他说这个精细的打印机居然花了 $2000,好贵!\n\n在想能不能用软件做 3D 地图... 现在现有的 D&D 在线地图软件似乎都是 2D 的,在想能不能做一个 mod 把 Minecraft 变成一个 D&D 地图的渲染引擎(不行我开太多坑了不能再开坑了呜呜呜 😢", - "views": 59, + "views": 60, "forwards": 1, "media_group_id": 13668560279975101, "images": [ @@ -46058,14 +46058,14 @@ "id": 3388, "date": "2024-02-22T18:10:43", "text": "感觉日语片假名真的是谜语\n\n刚才看了半天「コナステ」没想明白这是什么,然后查一查才发现是 \"Konami Amusement Game Station\" 的缩写(???)四个字母分别是 Konami 的 コ Ko, ナ na 和 Station 的 ス S, テ te.........\n\n什么密码学 (╯’ – ‘)╯︵ ┻━┻", - "views": 64, + "views": 65, "forwards": 1 }, { "id": 3389, "date": "2024-02-22T19:06:38", "text": "#桂桂今天吃什么\n胸柿炒鸡蛋!", - "views": 52, + "views": 53, "forwards": 1, "media_group_id": 13669030388740173, "images": [ @@ -46104,7 +46104,7 @@ { "id": 3392, "date": "2024-02-22T23:04:15", - "views": 54, + "views": 55, "forwards": 0, "files": [ { @@ -46128,8 +46128,8 @@ { "id": 3393, "date": "2024-02-23T04:47:28", - "text": "AquaNet 绑卡做好了!感觉写了两天终于写出了一个完美的解决方案 qwq\n\n1. 绑卡的时候会把存档迁移到账号上\n2. 如果账号上已经有存档了可以选择保留哪份存档\n3. 一个人可以绑多张卡\n4. 绑卡之后每张卡都能访问到同一份存档\n\n这些都是官方服务器做不到的哦!官方服务器即使一个账号绑了两张卡,两张卡的存档也都是分开的", - "views": 72, + "text": "#AquaNet 绑卡做好了!感觉写了两天终于写出了一个完美的解决方案 qwq\n\n1. 绑卡的时候会把存档迁移到账号上\n2. 如果账号上已经有存档了可以选择保留哪份存档\n3. 一个人可以绑多张卡\n4. 绑卡之后每张卡都能访问到同一份存档\n\n这些都是官方服务器做不到的哦!官方服务器即使一个账号绑了两张卡,两张卡的存档也都是分开的", + "views": 73, "forwards": 1, "media_group_id": 13669309190349189, "images": [ @@ -46292,7 +46292,7 @@ "id": 3404, "date": "2024-02-25T09:33:02", "text": "在网上和群友争来争去真的好费时间... 明明不好好写作业就是为了省下一个小时的时间,却不知不觉就因为吵架浪费掉了 😶 也没有得到什么\n\n明明以前不是那么喜欢和别人吵的,明明自己的观点和别人对自己的理解并没有时间重要,明明 todo list 里还有有生之年做不完的事情想做... 看来以后还是要多注意一下呢", - "views": 40, + "views": 41, "forwards": 0, "reply": { "id": 3402, @@ -46316,11 +46316,30 @@ "id": 3405, "date": "2024-02-25T09:39:52", "text": "和聊聊聊聊,聊聊觉得这种程度不算吵架算「激烈讨论」或者辩经 😢\n\n那这样说好像我确实没吵过架,不过无论怎样都不想和群友对立,也不想在这上面花时间...", - "views": 38, + "views": 39, "forwards": 0, "reply": { "id": 3404, "text": "在网上和群友争来争去真的好费时间... 明明不好好写作业就是为了省下一个小时的时间,却不知不觉就因为吵架浪费掉了 😶 也没有得到什么\n\n明明以前不是那么喜欢和别人吵的,明明自己的观点和别人对自己的理解并没有时间重要,明明 todo list 里还有有生之年做不完的事情想做... 看来以后还是要多注意一下呢" } + }, + { + "id": 3406, + "date": "2024-02-26T06:08:45", + "text": "今天把 #AquaNet 后端的请求验证写好啦!\n\n因为官方的游戏客户端给用户提交数据的时候并没有做登录验证也没有做机器验证,所以在这之前只要暴露了你的卡号别人就可以随便发请求改你的数据。\n\n今天做的请求验证实现方式是,机器 PowerOn 的时候验证 Keychip ID,给每个人的游戏返回一个独特的随机 URL 比如 `/gs/{token}/mai2/endpoint`,这样就可以不用担心熊孩子发的恶意请求追踪不到了!\n\n(不过还需要想办法解决 MITM 的问题... 毕竟街机用的是没加密的 HTTP 80 🤗", + "views": 5, + "forwards": 0, + "images": [ + { + "width": 1280, + "height": 315, + "date": "2024-02-26T06:08:44", + "media_type": "photo", + "original_name": "photo_2024-02-26_06-08-44.jpg", + "url": "media/3406.jpg", + "size": 58722, + "thumb": "media/3406.jpg_thumb.jpg" + } + ] } ] \ No newline at end of file diff --git a/exports/hykilp/rss.xml b/exports/hykilp/rss.xml index e6dbadea9..eba0a983e 100644 --- a/exports/hykilp/rss.xml +++ b/exports/hykilp/rss.xml @@ -12,7 +12,16 @@ https://aza.moe/life zh-cn - Mon, 26 Feb 2024 04:10:48 +0000 + Mon, 26 Feb 2024 06:10:38 +0000 + + 小桂桂的回忆录 📒 #3406 + https://aza.moe/life?post=3406 + <p>今天把 <a href="##AquaNet">#AquaNet</a> 后端的请求验证写好啦!</p> +<p>因为官方的游戏客户端给用户提交数据的时候并没有做登录验证也没有做机器验证,所以在这之前只要暴露了你的卡号别人就可以随便发请求改你的数据。</p> +<p>今天做的请求验证实现方式是,机器 PowerOn 的时候验证 Keychip ID,给每个人的游戏返回一个独特的随机 URL 比如 <code>/gs/{token}/mai2/endpoint</code>,这样就可以不用担心熊孩子发的恶意请求追踪不到了!</p> +<p>(不过还需要想办法解决 MITM 的问题... 毕竟街机用的是没加密的 HTTP 80 <i class="custom-emoji" emoji-src="emoji/6170424195260877091.webm">🤗</i></p> + 3406 + 小桂桂的回忆录 📒 #3405 https://aza.moe/life?post=3405 @@ -94,7 +103,7 @@ Mom: we have 双层麦香鱼 at home! 小桂桂的回忆录 📒 #3393 https://aza.moe/life?post=3393 - <p>AquaNet 绑卡做好了!感觉写了两天终于写出了一个完美的解决方案 qwq</p> + <p><a href="##AquaNet">#AquaNet</a> 绑卡做好了!感觉写了两天终于写出了一个完美的解决方案 qwq</p> <ol> <li>绑卡的时候会把存档迁移到账号上</li> <li>如果账号上已经有存档了可以选择保留哪份存档</li> @@ -164,7 +173,7 @@ Mom: we have 双层麦香鱼 at home! 小桂桂的回忆录 📒 #3373 https://aza.moe/life?post=3373 - <p>今天把 AquaDX 的注册登录的流程写得差不多了</p> + <p>今天把 <a href="##AquaNet">#AquaNet</a> 的注册登录的流程写得差不多了</p> <p>加上了 CF Turnstile 用来防机器人,加上了 GeoLite 本地数据库自动判断用户的国家,写了登录之后的 JWT token 验证,注册域名配好邮箱之后写了一个「验证邮箱」的邮件模板。好累 <i class="custom-emoji" emoji-src="emoji/5445059765778521446.tgs">📦</i></p> <p>...结果注册一个帐号测试的时候验证邮件还被谷歌标记 spam 了,不知道怎样绕过。</p> <p>感觉写自己在意的项目和糊作业需要的精力完全不一样... 作业要写注册的话随便把用户丢进数据库里就结束了,但是做这个项目的时候每个 design decision 都犹豫了好久,比如需不需要用户名、注册的时候要让用户填用户名后设显示名还是填显示名后设用户名 url、用户名字符要不要限制成 url-safe、邮件验证要发验证码还是验证链接、要不要强制邮件验证等等等等...</p>