Standing on the Shoulder of Linus

Home / 2013 / 9月 / 02 / 「CSRFについて」メルマガ配信しました。 / Page 2

「CSRFについて」メルマガ配信しました。

有害なリンクをクリックしただけで、重要な動作が行われるのは良くないですね。
投稿者が有害なリンクをクリックしたとき、投稿を削除する意図はなかったでしょうから。

クロスサイトリクエストフォージェリの対策は比較的容易です。
「公開」「削除」等の処理が、正規のルートで実行されたかどうかをチェックすればOKです。
1. 処理を行う直前のページに、トークン(攻撃者に推測されない値)を埋め込む
2. 処理を行うページでトークンをチェックし、
2-1. トークンが正規のものであれば処理を実行する
2-2. トークンが無いor不正ならば処理を実行しない

こうすれば、正規のルートで処理画面に到達した場合は、トークンが正規のものなので実行します。
前述の「有害なリンクをクリックする」で処理画面に到達した場合は、
処理を行う直前のページにトークンが無いので、「投稿を削除する」処理は行いません。

CSRF 対策は、実装自体は難しくないのですが、
ウェブアプリ以外では不要なケースがほとんどのため、
ウェブに詳しくないプログラマーがコードを書く場合に CSRF 脆弱性が発生しやすいです。


/**
 * 関数を知る  get_attached_media
 */


get_attached_media は、投稿に紐付けられたメディアを取得する関数です。
WordPress 3.6 で導入されました。

----------------------------------------------------------------------
get_attached_media(string $type, int $post_id)
$type ... (文字列) (必須) mime type 名
$post_id ... (整数) (オプション) 投稿 ID。省略時は現在の投稿の ID
----------------------------------------------------------------------
// 現在の投稿の画像を取得
$media = get_attached_media( 'image' );

// 投稿 ID 10 に添付された PDF ファイルを取得
$file = get_attached_media( 'application/pdf', 10 );
----------------------------------------------------------------------

第一引数 mime type には、image, audio, application/pdf 等を指定します。
第二引数は codex では投稿 ID ですが、投稿オブジェクトを渡しても動作するようです。

get_attached_media() 関数の戻り値は、
WP_Post のインスタンスを配列にキャストしたもの
になります。


+-------------------     フォーラムから学ぼう     ----------------------+
 トップページ左下にEdit this entryと有り固定ページ編集にとんでしまう

http://ja.forums.wordpress.org/topic/24455

WordPress では、ログインしている場合、それに応じた表示になります。
フォーラムに出てくるページ編集へのリンクや、コメント欄等です。

訪問者にどのように見えるか?を確認するときは、
ログアウトして、ブラウザキャッシュを消すようにしましょう。


======================================================================
Q & A
メルマガ読者からの質問を受けるコーナーです。
正式スタート後に開始します。
質問は mizuno@rescuework.jp までどうぞ。


==================     次回のメルマガ予定     ========================
次回は、「sharebar プラグインの CSRF 脆弱性」を取り上げます。


+--------------------------------------------------------------------+
  発行: レスキューワーク株式会社
  執筆: 水野 史土
  問い合わせ: mizuno@rescuework.jp
+--------------------------------------------------------------------+

次回は、「sharebar プラグインの CSRF 脆弱性」を取り上げます。
こちらはアーカイブ公開予定はありません。
新着情報 – メルマガ配信を始めますよりお申し込みください。

関連

Pages: 1 2

Posted in WordPress | Tagged CSRF, 画像
← WordPress で ?author=1 でユーザー名がばれるのを防ぐ方法 Windows Azure に WordPress をインストールしてみた →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.