''

Orien Daily

  1. 📚 「〜にあたって」不是万能正式表达:它和「〜際して」到底差在哪?很多人一想把句子写正式,就会把「〜するとき」一律换成「〜にあたって」

    📚 「〜にあたって」不是万能正式表达:它和「〜際して」到底差在哪?

    很多人一想把句子写正式,就会把「〜するとき」一律换成「〜にあたって」。结果就会写出不自然的句子,比如「ログを確認するにあたって、エラーが多かった」这种就别扭。因为「〜にあたって」不是单纯表示“在……的时候”,它更强调“面对一个重要节点、阶段或行动,带着准备、方针、注意事项去做”。常见场景是研究开始、系统迁移、規約改定、共同実験、論文投稿、データ公開这种“要进入一个动作或阶段之前”的正式说明。

    它和「〜際して」很像,但边界不一样。「〜際して」更像“值此……之际”,重点是时间节点本身,公告、通知、致辞、说明文里都能用,语气更中性、更书面;「〜にあたって」则更带有“郑重对待、事前准备、伴随判断”的感觉,所以后面常接「留意する」「確認する」「必要がある」「方針を定める」。再往下说,「〜にあたって」一般不拿来写日常小动作,也不太接纯粹已经发生的客观事实;如果只是普通的“做……时”,用「〜際に」「〜とき」「〜場合」往往更自然。

    比如研究和技术文档里,这样写就顺:
    新しい評価指標を導入するにあたって、既存実験との比較条件を統一する必要がある。
    在引入新的评估指标时,有必要统一与既有实验的比较条件。

    機密データを外部共有する際して、ではなく、共有するにあたってアクセス権限と匿名化手順を事前に確認する。
    这里故意对比一下:与其只说“在共享时”,更自然的是“在着手共享这一动作之前”,要事先确认访问权限和匿名化流程。
    在对外共享机密数据之前,需要事先确认访问权限和匿名化流程。

    本システムを本番環境へ移行するにあたって、ロールバック手順を文書化しておく。
    在将本系统迁移到生产环境之前,应先把回滚流程文档化。

    如果你只是想说一个普通时间点,就别硬上「〜にあたって」。像「結果を確認する際にエラーが見つかった」很自然,但换成「確認するにあたってエラーが見つかった」就怪了,因为后一句没有“面临重要动作并作准备”的味道,只是在叙述过程里发生了什么。

    💡 記憶ポイント:

  2. 🔐 为什么 SSRF 总能打到云主机的“内脏”很多人第一次接触 SSRF(Server-Side Request Forgery,服务端请求伪造)时,会把它理解成“让服务器替我发一个请求”

    🔐 为什么 SSRF 总能打到云主机的“内脏”

    很多人第一次接触 SSRF(Server-Side Request Forgery,服务端请求伪造)时,会把它理解成“让服务器替我发一个请求”。这句话没错,但太轻了,真正危险的地方在于:服务器看到的网络世界,和普通用户看到的不是一回事。你的浏览器访问不到 127.0.0.1、内网地址、云平台元数据服务,但业务服务器往往可以。于是一个看起来只是“帮你抓取图片 URL”“读取 webhook 地址”“预览远程文件”的功能,只要把用户提供的地址直接交给后端去请求,就可能变成一把通向内网的钥匙。

    为什么这事总发生?因为开发者脑子里想的是“这是个 URL 字符串”,攻击者脑子里想的是“这是一次由高权限网络位置发起的连接”。一旦后端没有严格限制目标地址,攻击者就会把请求打向本地服务、Redis、管理面板,或者云环境里最经典的目标:metadata service。比如在 AWS 里,169.254.169.254 这个地址可能暴露实例身份凭证;一旦拿到临时 Access Key,问题就不再是“读到一段数据”,而是横向访问对象存储、消息队列,甚至整个云账号里的其他资源。

    现实防护的关键,不是写一堆黑名单字符串匹配,因为那很容易被绕过。你拦 127.0.0.1,别人就用十进制、八进制、IPv6、DNS 解析跳转,或者先指向外部域名再让它解析到内网。真正靠谱的做法是把“服务器能主动连谁”变成默认拒绝,只允许业务明确需要的目标。也就是说,先做 egress allowlist,再做 URL 解析后的真实地址校验,校验的是最终 IP,不是用户输入的那串文本。同时,云上一定要关心 metadata 的保护机制,比如 AWS IMDSv2,不要让实例凭证裸奔;应用层面则尽量别让后端去请求用户任意给的 URL,如果业务上非做不可,就把它扔进隔离网络和低权限容器里跑。

    🧪 题目:某文件预览服务支持用户输入一个链接,后端会下载内容并生成缩略图。开发者已经拦截了字符串里出现 127.0.0.1、localhost 和 169.254.169.254 的情况,于是觉得 SSRF 风险已经解决。这个判断对吗?为什么?答案:

    💡 核心记忆:SSRF 的本质不是“输入了恶意 URL”,而是“你让服务器替攻击者站在更高权限的位置看网络”。

  3. 🔑 epoll 为什么快:它优化的不是“读写”,而是“等谁先准备好”很多人第一次听到 epoll,会以为它让网络收发本身变快了

    🔑 epoll 为什么快:它优化的不是“读写”,而是“等谁先准备好”

    很多人第一次听到 epoll,会以为它让网络收发本身变快了。不是。真正变快的是“找出哪些文件描述符已经就绪”这件事。在一个高并发服务器里,真正昂贵的往往不是 read 或 write,而是你手里有几万条连接时,系统每次都得回答同一个问题:现在到底该处理谁?

    早期的 select 和 poll 很直接,但也很笨。你每次调用都要把整批 fd 交给内核,内核再从头到尾扫一遍,看哪些能读、哪些能写。连接数一大,这个“全表扫描”就开始浪费时间。epoll 的设计思路完全不同:先用 epoll_ctl 把你关心的 fd 注册进去,之后内核自己维护这批对象的关注关系;等某个 fd 真正发生状态变化时,再把它放进“就绪队列”。这样用户态调用 epoll_wait 时,拿到的不是“所有人里谁好了”,而是“已经好的那几个”。

    这就是它快的根本原因:不是每次重新检查全部连接,而是把“关注集合”和“就绪结果”拆开。前者平时维护,后者按事件返回。设计上很像把“查名单”变成“等通知”,避免无意义重复劳动。这也解释了为什么 epoll 在连接很多、活跃连接相对较少的场景里特别合适,比如反向代理、聊天服务、长连接网关。

    但 epoll 也不是用了就万事大吉。最容易踩坑的是 ET,也就是 edge-triggered,边沿触发。它只在状态从“不可读”变成“可读”时提醒一次。如果你收到通知后只读了一半数据就走,下次可能根本不会再提醒,你会以为程序卡死了。LT,也就是 level-triggered,水平触发,则更宽容:只要缓冲区里还有数据没读完,它就会继续提醒。所以很多线上 bug 不是 epoll 慢,而是程序员把 ET 当成 LT 用了,却没配合非阻塞 fd 和“循环读到 EAGAIN 为止”的写法。

    再进一步说,epoll 的设计还体现了一个很重要的系统原则:把成本从“每次查询”转移到“状态变化发生时”。如果变化少、查询多,这种设计就赚大了;如果你的 fd 数量不大,或者本来就没什么并发,epoll 也未必比别的机制有决定性优势。工具本身没有神话,关键是它在优化哪一段路径。

    🧪 如果一个 socket 使用 epoll 的 ET 模式,并且已经收到一次“可读”通知,但程序只读取了部分数据就返回事件循环,最可能发生什么? EAGAIN

    💡 易混淆点:epoll 快,不等于 read/write 更快;它优化的是“大量连接下寻找就绪 fd 的方式”,而 ET 与 LT 的区别也不是“一个更高级”,而是谁来承担“把数据读干净”的责任。

  4. 🎵 Decline, Design — A Burial At Sea专辑:Spring Time Blues · 3:14前段吉他像一层层往上叠,鼓点一进来就把线条撑开,整首歌一直在克制和推进之间拉扯

    🎵 Decline, Design — A Burial At Sea
    专辑:Spring Time Blues · 3:14

    前段吉他像一层层往上叠,鼓点一进来就把线条撑开,整首歌一直在克制和推进之间拉扯。它有后摇的铺陈感,但不飘,收放都很利落。

    🔗 Spotify · #推歌 #后摇

  5. 📸 @WhiteSoxVideo村上宗隆さんが、日本生まれの新人選手による本塁打数で、大谷翔平さんに並び歴代2位タイとなりました

    📸 @WhiteSoxVideo
    村上宗隆さんが、日本生まれの新人選手による本塁打数で、大谷翔平さんに並び歴代2位タイとなりました。

    上には、今季23本塁打を放っている岡本和真さんだけがいます。 #岡本和真 #大谷翔平 #村上宗隆
    原文 #MLB日本選手

  6. 📸 @storingyeji260727 roger vivier Across the Autumn 2026 campaign, Global Brand Ambassador YEJI appears in dynamic and spontaneous scenes that balance sophistication with irreverence. She wears the Viv’ Ranger loafers, defined by a low squared heel and a miniature Efflorescence crystal buckle.

    📸 @storingyeji
    260727 roger vivier

    Across the Autumn 2026 campaign, Global Brand Ambassador YEJI appears in dynamic and spontaneous scenes that balance sophistication with irreverence. She wears the Viv’ Ranger loafers, defined by a low squared heel and a miniature Efflorescence crystal buckle.

    https://www.in... #예지 #YEJI
    原文 #黄礼志