skillup

技術ブログ

サーバー・ネットワーク

CSRF(クロスサイト・リクエスト・フォージェリ)

投稿日:2017年2月6日 更新日:

CSRF(クロスサイト・リクエスト・フォージェリ)とは?

ウェブサイトの中にはログイン機能を設けているものが多々ありますが、ログインした利用者からのリクエストについて、利用者が意図したリクエスト化を識別する仕組みを持たない場合、悪意のあるリクエストを受け入れてしまう可能性があります。この場合、悪意ある人が用意した罠により、利用者が予期しない処理を実行させられてしまう可能性があります。

このような問題をCSRF(クロスサイト・リクエスト・フォージェリ)の脆弱性といい、これを悪用した攻撃をCSRF攻撃といいます。

具体例もあるのでWIKIがわかりやすい。

https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA

要は別ページ(意図しないページ)からPOSTしてしまう仕組みです。

被害

  • ログイン後の利用者のみが利用可能なサービスの悪用(不正な送金、意図しない商品購入や大会処理など)
  • ログイン後の利用者のみ編集可能な情報の改ざん、新規登録(設定の不正な変更)
  • 主にCookieを用いたセッション管理、特に金銭処理が発生するサイトなどでは非常に重要

対策

  • トークンを発行し、処理を受け取る画面でその確認をする。(最も確実性が高い。工数も中程度。)
  • Referが正しいリンク元かを確認し、正しい場合のみ処理を実行する(Refererをオフにしていると正常な画面遷移もできない。)
  • 逆になんらかの情報を確定や変更しないページでは不要。

参考(トークンチェック)

トランザクショントークン

https://github.com/umanari145/secure

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

メール送信に関して その2 メールメッセージのデータ形式

前回に引き続き、メールのメッセージ構造について書きたいと思います。 Contents1 大まかな構造2 ヘッダ部2.1 メールアドレス2.2 From/Sender/Reply-To2.3 To/Cc …

no image

SQLインジェクション

セキュリティ関係の知識がぬるいのでちょっとお勉強。 知っていることもあるが復習もかねて勉強を。 Contents1 SQLインジェクションとは?2 被害3 対策4 参考サイト・書籍5 ソース SQLイ …

no image

vagrantで仮想環境を別PCにコピー

vagrantで自分の作った環境を他人にコピーしたい機会があり、なんとか成功したのでメモします。いや~便利ですね・・・ 環境は vagrant 1.7.4 win8 です。 Contents1 準備2 …

no image

サーバー設定ファイルについて apache

以前から気になっていたサーバーの設定ファイルに関しての疑問について調査。 本日はapacheについて学習しようと思います。 通常のapacheの設定ファイルは/etc/httpd/conf/httpd …

no image

サーバーの過負荷の発見 理論編

会社のテストサーバー(このブログが入っているサーバー)なんかが重くなってくると、再起動したりしているわけなんですが、CPUやメモリの使用率をみたり、といったシステマティックな運用はしてないです。 本来 …