GXO
セキュリティリスクを減らしたい

axios セキュア使い方 チェックリスト 2026|SSRF・タイムアウト・CSRF・interceptor の落とし穴 12 項目

14分で読める

READ LATER / FREE NEWSLETTER

「製品を先に買い、止められない業務・重要データ・管理者権限が未整理のまま残る」を避ける判断材料を残す

あとで読む保存は登録不要。無料レターでは、この記事に近い「セキュリティ製品を買う前に棚卸しする3点」を受け取れます。

保存はこの端末だけ・メール不要 / メルマガは営業電話なし・確認メール承認後に開始

GXO COLUMN

セキュリティ

axios の連続 CVE は「ライブラリ側のバグ」だが、企業システムでの実害の半分以上は「使い方のバグ」が原因だ。 SSRF を防ぐ baseURL 設計、timeout 未設定の連鎖障害、interceptor でトークンが第三者ドメインに漏れる事故――これらは axios のバージョン更新では防げない。本記事では、コードレビューで即使える 12 項目チェックリストを実コード例付きで提示する。


目次

  1. チェックリスト 12 項目 概要
  2. SSRF 対策(baseURL/allowAbsoluteUrls)
  3. timeout 設定(接続/レスポンス/総時間)
  4. CSRF トークン送信の正しい設計
  5. interceptor のトークン漏洩リスク
  6. proxy 設定の罠
  7. redirect の自動追従を制御する
  8. JSON 解析と Prototype Pollution
  9. エラーハンドリングと情報漏洩
  10. コードレビュー用 12 項目チェックリスト
  11. よくある質問(FAQ)

チェックリスト 12 項目 概要

横にスクロールして確認できます

#項目リスクレベル検知方法
1baseURL に外部由来文字列を結合していないgrep
2allowAbsoluteUrls: false を明示grep
3timeout を必ず設定(5-30 秒)grep
4maxRedirects を制御(既定値の見直し)grep
5maxContentLength/maxBodyLength で DoS 防止grep
6CSRF トークンを meta タグから注入grep
7interceptor で他ドメインに Authorization を漏らさないレビュー必須
8proxy 経由時の TLS 検証無効化禁止grep
9レスポンスを responseType: 'json' 明示grep
10エラーログに request body を含めないレビュー
11retry に exponential backoff+上限レビュー
121.15.0 以降を使用(CVE-2026-40175 対応)必須package.json

FREE DOWNLOAD

中小企業のDX推進「失敗を防ぐ5ステップ」ガイドを無料でお送りします

多くの企業がつまずくポイントを着手順に整理した無料ガイド。相談する前に、自社の現在地と進め方を掴めます。

5ステップガイドを無料でダウンロード

SSRF 対策

NG パターン(ユーザー入力を baseURL/url に直結合)

const userUrl = req.body.targetUrl;
const res = await axios.get(userUrl);

外部ユーザーが http://169.254.169.254/latest/meta-data/ を渡すと AWS メタデータエンドポイントに到達。

OK パターン(allowlist + 絶対 URL 拒否)

const ALLOWED = ['https://api.partner1.example', 'https://api.partner2.example'];
const targetBase = ALLOWED.find(b => userUrl.startsWith(b));
if (!targetBase) throw new Error('Forbidden host');

const client = axios.create({
  baseURL: targetBase,
  allowAbsoluteUrls: false,
  timeout: 10_000,
});
const res = await client.get(userUrl.replace(targetBase, ''));

timeout 設定

const client = axios.create({
  timeout: 10_000,
  signal: AbortSignal.timeout(15_000),
});

接続 timeout(OS レベル)とレスポンス timeout(axios レベル)と総時間(AbortSignal)の 3 段で守る。


FREE DOWNLOAD

中小企業の脆弱性対応 月次運用テンプレ

情シス1人体制でも回せる脆弱性棚卸・対応フローのテンプレート(Excel版)。

CSRF トークン送信の正しい設計

<meta name="csrf-token" content="{{ csrf_token() }}">
import { camelCase } from 'lodash';

const token = document.querySelector('meta[name=\"csrf-token\"]')?.content;
const client = axios.create({
  baseURL: '/api',
  headers: { 'X-CSRF-Token': token },
  withCredentials: true,
});

xsrfCookieName / xsrfHeaderName 既定の使用は同一オリジンのみ。CDN 経由 API では meta タグからの注入が確実。


interceptor のトークン漏洩リスク

NG パターン(外部 URL リダイレクト時に Authorization を引き継ぐ)

client.interceptors.request.use(config => {
  config.headers.Authorization = `Bearer ${token}`;
  return config;
});

axios は redirect 時に Authorization を引き継がないが、interceptor で全リクエストに付与する設計だと、redirect 後の外部ドメイン宛にも付与される。

OK パターン(自社ドメイン限定)

client.interceptors.request.use(config => {
  const url = new URL(config.url ?? '', config.baseURL);
  if (url.hostname.endsWith('.example.com')) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

proxy 設定の罠

const client = axios.create({
  proxy: {
    host: 'proxy.internal',
    port: 8080,
  },
});

NG: process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' で TLS 検証を無効化する。CI のデバッグで仕込んだまま本番に流出する事故が多発。


redirect の自動追従を制御する

const client = axios.create({
  maxRedirects: 5,
});

OAuth コールバックなど redirect が前提の処理では、maxRedirects: 0 + 手動制御が安全。リダイレクト URL の検証ロジックを噛ませる。


JSON 解析と Prototype Pollution

CVE-2026-40175 のような Prototype Pollution は、応答 JSON に __proto__ キーが含まれた時に発生。1.15.0 以上であれば既定で防御されるが、自前で JSON.parse 結果を再帰マージする処理がある場合は別途対策が必要。

const safeMerge = (target, source) => {
  for (const key of Object.keys(source)) {
    if (key === '__proto__' || key === 'constructor' || key === 'prototype') continue;
    target[key] = source[key];
  }
  return target;
};

エラーハンドリングと情報漏洩

NG パターン

catch (e) {
  logger.error(e.config); // request body / headers / token が全部出る
}

OK パターン

catch (e) {
  logger.error({
    url: e.config?.url,
    status: e.response?.status,
    code: e.code,
  });
}

retry に exponential backoff+上限

import axiosRetry from 'axios-retry';

axiosRetry(client, {
  retries: 3,
  retryDelay: (count) => Math.min(2 ** count * 200, 2_000),
  retryCondition: (e) => axiosRetry.isNetworkOrIdempotentRequestError(e),
});

コードレビュー用 12 項目チェックリスト

□ 1. baseURL にユーザー入力を結合していない
□ 2. allowAbsoluteUrls: false を明示
□ 3. timeout を 5-30 秒で設定
□ 4. maxRedirects を 0-5 に制御
□ 5. maxContentLength を 10MB 以下に
□ 6. CSRF トークンを meta から注入
□ 7. interceptor の Authorization 付与をドメイン限定
□ 8. NODE_TLS_REJECT_UNAUTHORIZED を本番で無効化していない
□ 9. responseType: 'json' を明示
□ 10. error ログに request body を含めていない
□ 11. retry に exponential backoff+上限
□ 12. axios 1.15.0 以上を使用

GXOの見解

セキュリティニュースは読むだけでは価値がなく、自社資産、影響判定、対応期限、経営報告に変換して初めて防御力になる。

GXOは単発診断よりも、月次の棚卸し、優先順位付け、証跡管理、改善実行までを運用化すべきだと見る。

GXOは、脆弱性診断、インシデント対応、月次運用、開発保守の改善まで接続できる形で支援します。

実務判断のポイント

この記事は、経営者、CIO、情シス、セキュリティ担当、開発責任者向けです。脆弱性管理、外部公開資産棚卸し、月次セキュリティ運用、インシデント対応を自社で進めるか、外部の専門家と整理するかを判断する材料として使えます。

GXOが重視するのは、話題性の高さよりも「自社の業務、データ、権限、予算、運用責任にどう影響するか」です。axios セキュア使い方 チェックリスト 2026|SSRF・タイムアウト・CSRF・interceptor の落とし穴 12 項目に関する検討では、担当者だけで判断を閉じず、経営、現場、情シス、外部パートナーの役割を早い段階で分けることが重要です。

放置した場合と整備した場合の違い

横にスクロールして確認できます

観点放置した場合整備した場合
業務影響属人的な判断が増え、対応の優先順位がぶれやすい影響範囲、期限、責任者を決めて進められる
投資判断ツール導入や外注費だけが先行し、効果測定が曖昧になる売上、工数削減、リスク低減の指標にひも付けられる
現場運用例外処理や承認フローが残り、定着しにくい権限、ログ、教育、改善サイクルまで設計できる
経営報告問題が発生してから説明資料を作ることになる月次で状況、課題、次の打ち手を説明できる

導入・改善前のチェックリスト

  • 対象業務、対象部門、対象データを明文化しているか
  • 現在の課題を、売上機会、原価、工数、リスクのいずれかに分解しているか
  • 既存システム、SaaS、Excel、手作業の依存関係を棚卸ししているか
  • 例外処理、承認、差し戻し、監査証跡まで確認しているか
  • 社内で判断できる範囲と外部支援が必要な範囲を分けているか
  • 初期費用だけでなく、保守、運用、教育、改善費用を見積もっているか
  • 成功指標を、問い合わせ数、商談数、削減時間、停止リスクなどで定義しているか
  • 実装後の責任者、更新頻度、レビュー会議の持ち方を決めているか
  • セキュリティ、法務、個人情報、契約条件の確認ポイントを洗い出しているか
  • 既存の問い合わせ、商談、障害、運用ログから優先順位を決めているか
  • 経営判断に必要な資料を1枚で説明できる状態にしているか
  • 次の90日で検証する範囲と、やらない範囲を明確にしているか

GXOの実務補足

セキュリティニュースは読むだけでは価値がなく、自社資産、影響判定、対応期限、経営報告に変換して初めて防御力になる。

GXOは単発診断よりも、月次の棚卸し、優先順位付け、証跡管理、改善実行までを運用化すべきだと見る。

GXOは、脆弱性診断、インシデント対応、月次運用、開発保守の改善まで接続できる形で支援します。記事のテーマを単なる情報収集で終わらせず、相談、診断、要件定義、実装、運用改善に接続することで、診断、監査、保守契約、月次レポート、緊急対応支援へ接続。さらに、チェックリスト型診断を入口に、継続監視・改善支援へ展開。

実行までの進め方

  1. 現在の業務、データ、ツール、担当者を棚卸しする
  2. 売上拡大、工数削減、リスク低減のどれに効くテーマかを決める
  3. 初期対応、90日以内の改善、半年以上の投資を分ける
  4. 必要な社内体制、外部支援、予算、セキュリティ確認を整理する
  5. 小さく検証し、効果測定後に本番化や横展開を判断する

よくある質問(FAQ)

Q. 既存コード 100 callsite で 12 項目全部レビューするのは現実的? A. 12 項目のうち 1-3/6/8/12 は grep で 30 分以内に網羅可能。7/10/11 はコードレビュー必須。1 callsite あたり平均 3 分で 100 callsite で 5 時間が目安。

Q. axios.create() を使い回す設計と都度 new する設計、どちらが安全? A. interceptor/timeout/allowlist を一元管理する観点で、axios.create() を 1 箇所で生成して export する設計が安全。

Q. axios-retry はどのくらい広く採用されている? A. axios-retry の週次ダウンロード数は 200 万超(2026 年 4 月時点)、企業システムでもデファクト。retry 自前実装より低リスク。


参考資料

  • axios 公式ドキュメント Security Best Practices
  • OWASP API Security Top 10 2023
  • IPA「Web アプリケーション開発における脆弱性対策」2024 年版

社内コードレビュー基準への組込みやセキュリティ自動化(grep ルール/Lint 規約)の整備は、GXO のセキュリティ運用支援サービスで支援可能です。

GXO実務追記: サイバーセキュリティで発注前に確認すべきこと

この記事のテーマは、単なるトレンド紹介ではなく、自社で最初に塞ぐべきリスク、外部診断の範囲、初動体制を決めるための検討材料です。検索で情報収集している段階でも、発注前に次の観点を整理しておくと、見積もりのブレ、手戻り、ベンダー依存を減らせます。

まず決めるべき3つの論点

横にスクロールして確認できます

論点確認する内容未整理のまま進めた場合のリスク
目的売上拡大、工数削減、リスク低減、顧客体験改善のどれを優先するか成果指標が曖昧になり、PoCや開発が終わっても投資判断できない
範囲対象部署、対象業務、対象データ、対象システムをどこまで含めるか見積もりが膨らむ、または重要な連携が後から漏れる
体制自社責任者、現場担当、ベンダー、保守運用者をどう置くか要件確認が遅れ、納期遅延や品質低下につながる

費用・期間・体制の目安

横にスクロールして確認できます

フェーズ期間目安主な成果物GXOが見るポイント
事前診断1〜2週間課題整理、現行確認、投資判断メモ目的と範囲が商談前に整理されているか
要件定義 / 設計3〜6週間要件一覧、RFP、概算見積、ロードマップ見積比較できる粒度になっているか
PoC / MVP1〜3ヶ月検証環境、効果測定、リスク評価本番化判断に必要な数値が取れるか
本番導入3〜6ヶ月本番環境、運用設計、教育、改善計画導入後の運用責任と改善サイクルがあるか

発注前チェックリスト

  • 重要システムと個人情報の所在を棚卸ししたか
  • VPN、管理画面、クラウド管理者の多要素認証を必須化したか
  • バックアップの世代数、復旧時間、復旧訓練の実施日を確認したか
  • 脆弱性診断の対象をWeb、API、クラウド、社内ネットワークに分けたか
  • EDR/MDR/SOCの必要性を、監視できる人員と照らして判断したか
  • インシデント時の連絡先、意思決定者、広報/法務/顧客対応を決めたか

参考にすべき一次情報・公的情報

上記の一次情報は、社内稟議やベンダー比較の根拠として使えます。一方で、公開情報だけでは自社の現行システム、業務フロー、データ状態、予算制約までは判断できません。記事で一般論を把握した後は、自社条件に落とした診断が必要です。

GXOに相談するタイミング

次のいずれかに当てはまる場合は、記事を読み進めるだけでなく、早めに相談した方が安全です。

  • 見積もり依頼前に、要件やRFPの粒度を整えたい
  • 既存ベンダーの提案が妥当か第三者視点で確認したい
  • 補助金、AI、セキュリティ、レガシー刷新が絡み、判断軸が複雑になっている
  • 社内稟議で費用対効果、リスク、ロードマップを説明する必要がある
  • PoCや診断で終わらせず、本番導入と運用改善まで進めたい

axios セキュア使い方 チェックリスト 2026|SSRF・タイムアウト・CSRF・interceptor の落とし穴 12 項目を自社条件で診断したい方へ

GXOが、現状整理、RFP/要件定義、費用対効果、ベンダー比較、導入ロードマップまで実務目線で確認します。記事の一般論を、自社の投資判断に使える形へ落とし込みます。

セキュリティ初期診断を相談する

※ 初回相談では営業資料の説明よりも、現状・課題・判断材料の整理を優先します。

参考情報

  • 制度、価格、仕様、脆弱性、法務、セキュリティに関する判断は、公開時点の公式情報と一次情報を確認したうえで更新してください。

GXO 経営IT判断レター

自社に近い失敗を選び、判断チェックを受け取る

テーマ別に、失敗条件・社内で使える判断軸・次の一手を1通1テーマで届けます。登録だけで営業電話はしません。

最初の配信でわかること

セキュリティ製品を買う前に棚卸しする3点

よくある失敗:製品を先に買い、止められない業務・重要データ・管理者権限が未整理のまま残る

  • 止められないシステム
  • 漏らせないデータ
  • 侵入口・権限・復旧責任
配信設定:約2週間に1回までトレンド便はなし
配信頻度を変更する(任意)

トレンド便は品質監査95点以上の新着があるときだけ配信。通常レターと同日に重ねません。現在の選択:受け取らない

営業電話なし・いつでもテーマ/頻度変更・配信停止

ISSUE HUB

セキュリティリスクを減らしたいの全体像を見る

この課題に関係する記事をまとめて見渡し、論点の整理、着手の優先順位、取り得る解決策を順に確認できます。

課題別ハブを見る

CATEGORY CLUSTER

同じ課題で読む

大きなテーマから具体的なテーマへとたどると、課題の全体像から個別の解決策まで順に確認できます。

関連 HUB

この記事は以下の業種・悩み hub にも掲載されています。同じテーマの実務ナレッジと支援サービスをまとめてご覧いただけます。

SAVE

気になった記事を手元に

メール登録なしでこのページから記事を保存できます。あとからメールアドレスを登録すると、保存した記事のリストをまとめて受け取れます。

保存した記事はまだありません。気になる記事があれば、このボタンから残しておけます。

お気軽にご相談ください

AI・DXに関するご質問やお見積もりなど

無料相談する

CONTACT

まずは 無料相談 から始めませんか。

サービスについてのご相談・ご質問などお気軽にお問い合わせください。
※ 営業電話はしません | オンライン対応可 | 相談だけでもOK