X

ハッシュ(HMAC)を使ってパスワード付きURL/URIを作る方法

より高度なCSRF対策 – URL/URI個別にバリデーションする方法でハッシュ(HMAC)を使えばデータベースを使わずに有効期限付きのURLを作れる、と紹介しました。今回はパスワード付きURL(URI)の作り方を紹介します。 (さらに…)

ハッシュ(HMAC)を使って有効期限付きURL/URIを作る方法

より高度なCSRF対策 – URL/URI個別にバリデーションする方法でハッシュ(HMAC)を使えばデータベースを使わずに有効期限付きのURLを作れる、と紹介しました。今回は有効期限付きURL(URI)の作り方を紹介します。 (さらに…)

より高度なCSRF対策 – URL/URI個別にバリデーションする方法

ハッシュ関数は色々な場面で利用できます。このエントリではハッシュ関数の使い方、特にリクエストにサインする方法として、データベースを使わずURI個別のCSRFトークンを生成しバリデーションする方法を紹介します。 (さらに…)

ISO 27000の入力データ妥当性確認

セキュリティ標準では入力データの妥当性確認(入力バリデーション)が要求されています。具体的な方法はBS 7799(英国のJIS規格のような物、2000年に国際標準化)が作られた時(90年代後半)から記載されており、前の版までのISO 270001にも記載されています。2013年版のISO 27000ではセキュアプログラミングが普及したので具体的な方法などは省…

ホワイトリストの作り方

ホワイトリストの考え方/作り方は難しくありません。しかし、間違えていることが少なくないようです。 GoogleがCSP(Content Security Policy - ホワイトリスト型のJavaScriptインジェクション対策)の利用状況を調べたところ以下のような結果が得られました。 we take a closer look at the practi…

セッションデータインジェクション

PHP 5.6.25/7.010以降で修正されたセッションデータインジェクション Fixed bug #72681 (PHP Session Data Injection Vulnerability). (CVE-2016-7125) の解説です。 この脆弱性を利用するとオブジェクトインジェクションが簡単に行えます。結構深刻な問題ですが、あまり話題にはなって…

投稿に追記 – ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション

RSSで購読されている方が結構いる(ありがとうございます!)のでエントリに追記したことをお知らせします。 https://blog.ohgaki.net/input-validation-disables-most-injection-attacks#i-15 このエントリの最後に「残存リスク」の項目を追加しました。 思っているより多くの残存リスクがあり、こ…

完全なSQLインジェクション対策

不完全なSQLインジェクション対策だけで、SQLインジェクション対策は万全、と誤解しているケースが少なくないです。 プリペアードクエリ/プレイスホルダを使ったSQLインジェクション対策でOK は誤りです。「とにかくプレイスホルダを使おう」では脆弱性は無くなりません。 簡単な証明:プリペアードクエリ”だけ”では、識別子(カラム/テーブル等)を使うソートクエリ、…

PHPスクリプトの分析ツール

PHPスクリプトを分析するツールをまとめたページの紹介です。 (さらに…)

根本的なセキュリティ対策とは何か?

セキュリティ対策において対策が「根本的」な対策であるかどうか?はあまり重要ではないです。セキュリティ対策において重要なのは対策が「効果的」であるかどうか、が重要だからです。 この基本を押さえた上で、ソフトウェアの「根本的な対策」とは何かを考えてみます。 (さらに…)