ウェブに関する情報

このブログポストではウェブ(Web)開発をするため必要な知識や情報を共有します。

package.jsonのcaret(^)はどう動くのか — ロックファイルが抜けたDockerビルドが起こしたインシデント

2026-05-25
コードを一切変更していないのに、ある日突然Dockerのproductionビルドが失敗しました。原因は 依存ツリーの奥深くにあるtransitiveパッケージが数日前にpublishした新しいpatchでした。 この記事ではインシデントを追いながら、package.jsonのcaretレンジが実際にどう動くのか、 そしてyarn.lockがどんな役割を果たすのかを整理します。
자세히 보기 →

Subresource Integrity(SRI)でCDN改ざんをブロックする: Polyfill.ioが残した教訓

2026-05-22
2024年のPolyfill.ioインシデントは、CDN経由でロードする外部スクリプトが10万以上のサイトを 一度に感染させうることを示しました。Subresource Integrity(SRI)の動作原理と適用方法、 そしてGoogle FontsのようなダイナミックCSSでSRIをどのように回避・代替するかを整理します。
자세히 보기 →

GitHub Dependency Review ActionでPR段階から新しい依存関係を検証する

2026-05-21
新しい依存関係を追加するPRが既知のCVEを持つパッケージ、ライセンス違反、危険なメンテナー変更を 持ち込まないようにするため、GitHub Dependency Review ActionでPRゲートをかける方法を 実際のインシデント事例とともに整理します。
자세히 보기 →

CodeQLとyarn npm auditでセキュリティスキャナーを強化する

2026-05-20
供給チェーンのcooldownだけでは防げない2つのリスク — 「すでに依存ツリーに入っている既知のCVE」と 「自分たちのコード自体の脆弱性」 — を、それぞれyarn npm auditとGitHub CodeQLで防ぐ方法を 実際のインシデント例とともに整理します。
자세히 보기 →

SBOMで依存関係の可視性を確保する: Log4Shellが残した教訓

2026-05-19
新しい脆弱性が公開されるたびに「私たちのプロジェクトは影響を受けるか?」という問いに 即答できなければ、依存関係の可視性が不十分な状態です。Log4Shellの事例を通じてSBOM (Software Bill of Materials)がなぜ必要か、GitHub Dependency Submissionでどのように 自動化するかを整理します。
자세히 보기 →

Yarn 4 Hardened ModeでlockfileインジェクションAttackをブロックする

2026-05-18
供給チェーン防御の盲点の一つであるlockfile改ざん攻撃を解説します。Yarn 4のHardened Modeが インストールのたびにresolutionと完全性ハッシュを検証してlockfile injectionシナリオを どのようにブロックするか、そして1行の設定でどのように導入できるかを整理します。
자세히 보기 →

供給チェーン攻撃防御におけるcooldownの効果と限界

2026-05-17
Dependabot cooldownやパッケージマネージャーのminimum release ageのような時間ベースの 供給チェーン防御戦略が実際にどれほど有効かを、これまでのインシデントデータで検証します。
자세히 보기 →

供給チェーン攻撃を防ぐ3つの防御戦略

2026-05-16
npm供給チェーン攻撃に対応するための3つの防御戦略を整理します。 GitHub ActionsのSHAピン固定、Dependabot cooldown、Yarn 4のnpmMinimalAgeGateを コードとともに段階的に解説します。
자세히 보기 →

axiosの事例で学ぶnpm供給チェーン攻撃のメカニズム

2026-05-15
2026年3月にnpmエコシステムを襲ったaxios供給チェーン攻撃の事例を分析します。メンテナーアカウント の乗っ取り、悪意ある依存関係の注入、postinstallスクリプトを通じたRAT配布までの攻撃フローと、 npmの信頼モデルが抱える構造的な脆弱性を解説します。
자세히 보기 →

word-break: break-wordは非推奨です — overflow-wrap: anywhereに切り替えるべき理由

2026-03-18
word-break: break-wordはCSS仕様で非推奨(deprecated)となったレガシー値です。代替の overflow-wrap: break-wordもintrinsic sizing要素では動作しない落とし穴があります。正しい 代替の組み合わせ(overflow-wrap: anywhere + word-break: normal + line-break: strict)と Stylelintカスタムプラグインによる自動化方法を共有します。
자세히 보기 →

[最適化] lodash Tree Shakingでバンドルサイズを82%削減:547KBから97KBへ

2026-02-28
モノレポ環境でlodashのimport方式を変更し、バンドルサイズを547KBから97KBへ約82% 削減した経験を共有します。バンドル分析環境の構築からESLintルールによる再発防止までの プロセスを紹介します。
자세히 보기 →

[Web] Lighthouseパフォーマンス最適化総合ガイド

2026-02-14
Astroブログの Lighthouse パフォーマンススコアを改善するために適用した画像最適化、CSS最適化、 ウェブフォント最適化、アクセシビリティ改善などの方法を共有します。
자세히 보기 →

SHARE
Twitter Facebook RSS