BLOG ENTRY

CSRF(クロスサイトリクエストフォージェリー)脆弱性の対策(PHP)

php
書籍からの情報を元に、CSRF(クロスサイトリクエストフォージェリー)脆弱性の対策方法(PHP)をメモ。

1、リファラーチェック法

[PHP]
isAdmin() && $_GET[‘delete_ok’] == 1 && strncmp(@$_SERVER[‘HTTP_REFERER’] , $myuri , strlen($myuri))) {
//処理を行う
}
[/PHP]

2、ワンタイムチケット法

フォームを表示する際に、チケット・半券のペアを作り、チケット側をhiddenとして埋め込む。
半券はセッション変数として保存する。実際のPOSTを処理するときにPOSTされたチケットと半券の一致を確認して半券を廃棄する。
[PHP]
isAdmin() && $_GET[‘delete_ok’] == 1 && $myticket->check()) {
//処理を行う
}
[/PHP]

3、GETではなくPOSTを使う

重大な操作の最終確認はGET渡しではなくPOST渡しで行う。
処理の受取先で$_REQUESTは利用しない。

詳しいことはPHPサイバーテロの技法に書かれてます。この本はすごくためになりました。著者の方に感謝。

その他14種類の脆弱性についてはこちらのページで一覧確認できます。

WRITE COMMENT


(required)


(required)


(required)

MENU

veltica creative of twitter