ブログ

Criticalが4件並んだ日にやったこと
朝、通知を見たらCriticalが4件並んでいました。どれも同じ相手、Next.js本体です。 この日にやったことを順に書きます。結論から言うと、上げました。ただ、上げる前にやったことのほうが本題です。 この記事で扱うこ […]

ソース解説(3) 旗を折るのではなく、読み込まない
クッキー同意のバナーは、置くこと自体は難しくありません。難しいのは、「同意していない人には何も送っていない」と自分で言い切れる形にすることでした。 今回はその部分のコードを読んでいきます。保存する形、版番号を持たせた理由 […]

「送っていない」と言い切るために、同意まで読み込まないことにした
止める対象の数え方、旗を立てる方式と読み込まない方式の違い、スクリプトが無い環境の扱い、そして同意の記録に版を持たせた理由です。

登録してから、広告を出すまで
成果報酬型の広告を扱えるようにした。手続き自体は難しくないが、順番を間違えると手戻りになる。準備・判断・置かない場所の決め方をまとめた記録。

使っていないものは、書かない
広告を検討して手が止まったのは、広告ではなくプライバシーポリシーが無かったこと。テンプレートを貼らなかった理由と、置き場所・管理の仕方をどう決めたか。

届かない問い合わせ
問い合わせフォームで決めることは3つあった。メールアドレスを載せるか、送信先が未設定のときフォームを出すか、失敗をどう伝えるか。共通していたのは「うまくいったように見えて、実は何も起きていない」状態をどう避けるかだった。

上げる先が、ひとつしかなかった
脆弱性28件のうち23件がNext.jsに集約されていた。あとは上げるだけ、のはずが「どこまで上げるか」で手が止まった。サポート期限を調べたら選択肢は実質1つだけ。コードモッドが入れた不要な設定を消し、プレビューで確認してから本番へ入れた記録。

依存の中の依存
脆弱性の警告が29件。数字だけ見ると手のつけようがないが、分類すると実質3つの問題だった。自動で出てくる更新PRの危険度の見分け方と、直接の依存を上げたのに警告が消えなかった理由。

GTMの設定は誰でも読める
コンテナIDをURLに打ち込むと、どんなタグがどんな条件で発火するかが誰でも読める。これは不具合ではなく、そうでなければ動かない仕組み。ブラウザで動くものに秘密は持てないという前提と、そこから導かれる「書いてはいけないもの」の話。

所有権をどう証明するか
Search Consoleが提示する5つの確認方法は、それぞれ証明している中身が違う。ファイルやHTMLタグは「サイトの中身に手が届く」ことしか示さないが、DNSのTXTレコードだけは「ドメインそのものを支配している」ことを示す。そして実作業では、正しい値を書いたのに反映されなかった。参照されていない管理画面に書いていたためで、「保存できた」は「効いている」ではないという話。
自分のブログに記事が投稿できない — WAFの誤検知と、渡し方を変える解決
自分のブログに、自分で書いた記事が投稿できなくなりました。 原因はサーバーのWAF(Webアプリケーションファイアウォール)でした。記事の本文に含まれるコードが、攻撃と誤検知されて遮断されていたのです。回避を4種類試して […]
書いた記事をWordPressに届けるまで — CORS・nonce・CSSの壁
「作った」と「届いた」は違う ここまでの作業記録を記事にまとめ、HTMLファイルとして書き出しました。CSSも当て、ブラウザで開けばきちんと読める状態になっていました。私はそこで「記事の作成は完了した」と考えていました。 […]
公開したあとの話 — 脆弱性検知と監視の仕組みを作る
ポートフォリオサイトを本番公開したあと、運用のための仕組みを整えました。脆弱性の検知、稼働の監視、依存パッケージの更新です。 公開までの記事は「動かすまで」の話でしたが、今回は「動き続けさせる」ための話になります。地味な […]