素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

投稿日:

【SpringBoot2】エラーレスポンスを独自カスタマイズする方法【DefaultErrorAttributes】

Anker PowerCor

created by Rinker
Anker
¥4,990 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥33,430 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,748 (2024/04/03 21:33:15時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK

created by Rinker
Bauhutte(バウヒュッテ)
¥14,935 (2024/04/03 21:42:10時点 Amazon調べ-詳細)

メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

created by Rinker
MOFT
¥2,880 (2024/04/03 21:42:18時点 Amazon調べ-詳細)

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

スポンサーリンク

336×280




SpringBoot2のデフォルトのエラーレスポンスは危険

脆弱性の原因

SpringBoot2でシステム開発をする際は、APIを開発する事が多いと思います。

@RestControllerをつけることで簡単に実装を進める事が出来るので、とても便利なフレームワークですよね。

しかし、何も気にせずそのまま実装を進めると、システムエラーが発生した際に、システム内部の情報が含まれたレスポンスが返却されてしまうので、脆弱性に繋がる可能性があります。

デフォルトのエラーレスポンス

実際にサーバー内部でエラーが起きると以下のようなレスポンスが返ります。

パッケージ情報やエラー詳細、場合によってはパラメーターやDBのデータも出力されてしまうためとても危険です。

カスタマイズ可能

そのままだと危険ですが、もちろんエラーレスポンスをカスタマイズすることが出来ます。

今回はそのやり方をご紹介致します。

手順

DefaultErrorAttributesの継承クラスを用意する

やり方はとても簡単です。

以下のようなDefaultErrorAttributes継承クラスを用意して、getErrorAttributesメソッドをOverrideすれば良いだけです。

今回は試しにpathtimestampだけを返すようにしてみました。
@Componentを忘れずに!

確認

では、もう一度同じエラーを発生させてみましょう。

しっかりとカスタムエラーレスポンスが適用されるようになり、システム内部のエラーの詳細が返却されないようになりましたね♪

参考

Spring Boot 2 プログラミング入門

終わりに

パッケージ情報やエラー詳細は脆弱性やハッキングに繋がるので必ずレスポンスに含まれないようにしましょう。

また、レスポンス項目も自由に追加することが可能なので、要件にあったエラーレスポンスを考えてみてください♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , , ,

blogenist

Author: blogenist

関連記事

YouTubeも見てね♪

お名前.comサイドバー