みなさん応援📣ありがとうございました🥰
中学最後の個人戦
二回戦負けという結果で呆気なく終わりました😂
思惑通りにはならず悔しさが残った試合でしたが最後まで戦いぬきました🥹
ハル約2年半お疲れ様でした🥹
高校で心機一転頑張って😃
その前に受験勉強だけどね👍 #中学県総体 #剣道
原文 #剣道
''
Skip to main content
redirect_uri 的校验太松。OAuth 的核心流程是:用户在身份提供方登录后,授权码 code 会被浏览器带回业务方预先登记的回调地址。如果服务端只做“包含关系”“前缀匹配”或者允许任意子路径、任意子域,攻击者就能把本该回到你应用的授权码,骗去自己的页面,再拿这个 code 去换取 access token,结果就是用户刚正常登录,账号却被别人接管了。https://app.example.com/callback 放宽成 https://app.example.com/*,甚至更糟,允许 https://*.example.com/*。一旦某个子域可被上传内容、可被接管,或者存在开放重定向,攻击者就能把 OAuth 服务器返回的 code 转走。麻烦在于,这不是用户输错密码,也不是浏览器中毒,而是协议落地时把“精确绑定”做成了“模糊容忍”。redirect_uri 必须做精确匹配,最好精确到完整 URL;不要支持通配符子域;不要依赖“先跳到本站再 302 到别处”的补救设计;客户端在发起授权时要带高强度 state 防 CSRF,移动端和 SPA 还应该用 PKCE,避免授权码被截获后直接复用。还有一个常被忽略的点:如果业务里存在 open redirect,它本身就可能成为 OAuth 回调劫持的跳板,所以开放重定向不是“小漏洞”,放到认证链路里就会升级。https://login.example.com/*,而 https://login.example.com/redirect?next= 存在开放重定向。攻击者发起授权请求,把回调写成 https://login.example.com/redirect?next=https://evil.com/catch。用户完成登录后,授权码最终会到谁手里?为什么?答案:login.example.comevil.com/catchredirect_uri 必须精确绑定,不能“差不多就行”。
cmd1 && cmd2 只有在 cmd1 成功时才跑 cmd2,而 cmd1 || cmd2 则是在 cmd1 失败时才补上第二个命令。你平时觉得这些符号顺手,背后靠的就是 exit status,而不是输出文字。grep pattern file 找到了会返回 0,没找到常常返回 1,但这不代表程序坏了,只是“没匹配到”。再比如有些命令明明打印了一堆错误信息,如果你不检查 $?,或者不把它放进 &&、||、脚本的错误控制里,Shell 还是可能继续往下跑,把后续步骤也一起搞脏。更坑的是管道。很多人以为 cmd1 | cmd2 里只要前面炸了,整个就算失败;实际上默认情况下,Shell 往往只看最后一个命令的退出状态。所以前面已经出错,后面命令如果照样退出 0,你会得到一个“表面成功”的假象。这就是为什么写严肃脚本时常要加 set -e,甚至 set -o pipefail:不是为了显得专业,是为了别让错误悄悄溜过去。false && echo ok || echo fail,终端最终会打印什么?为什么?答案:failfalse&&echo ok||echo fail0 在编程里常像“假”,但在 Shell 的 exit status 里,0 恰恰表示成功,非 0 才表示失败或特殊情况。