タグ

ブックマーク / blog.ts5.me (5)

  • セッションを使ったフォーム処理にありがちな問題点 - T.Teradaの日記

    入力画面が複数に渡るフォームで、ユーザが各画面で入力したデータを、hiddenによって引き回すのではなく、セッション変数(セッションIDにヒモ付いてサーバ側に格納される情報)に一時保存するタイプのWebアプリケーションが増えているように思います。 フォーム処理でセッションが使われるのは、「実装をシンプルにしたい」「携帯サイトなどで通信量を減らしたい」といった理由のほかに、「アプリケーションをセキュアにしたい(hiddenだと改竄される)」という理由があるのではないかと思います。 しかし、セキュリティ上の問題は、セッションを使ったフォーム処理においてもしばしば見つかります。 以下では、セッションを使ったフォーム処理で、割と多く見つかる問題について書きます。 画面遷移の不正 ある会員制サイトの、会員登録フォームを会話風に書いてみます。 会員登録の際には、氏名、生年月日、住所の3つを登録します。

    セッションを使ったフォーム処理にありがちな問題点 - T.Teradaの日記
    dosequis
    dosequis 2008/02/27
    間違いに気をつけつつ。
  • 15種類のSQL Injectionツール評価

    ここのところ、いくつかのSQL Injectionツールについて調べていました。今日はその結果を日記に書いてみようと思います。 はじめに SQL Injectionツールとは SQL Injection脆弱性の発見と、発見した脆弱性を突いてのDB内情報の取得を行なうためのツールです。 ただし、多くのツールでは「脆弱性の発見」はおまけで、後者のDB内情報の取得に主眼を置いています。一般的には、汎用のWeb脆弱性スキャナなどで脆弱性を見つけて、その脆弱性に対してこの日記に書いているようなツールを使って情報を取得するという使い方をすることが多いでしょう。 SQL Injectionツールは、いわゆるHackingツールです。脆弱性検査を行なう者か、さもなければCrackingを行なう犯罪者が使うくらいで、一般のWeb開発者やユーザの人が使う必要に迫られることは無いでしょう。 ツールの使用に際して

    15種類のSQL Injectionツール評価
  • PHPでの入力値チェックのすり抜け - T.Teradaの日記

    Webアプリケーションでは、外部からの変数に対して、形式チェック(Validation)を行ないます。PHPでこれを行なう場合に、ありがちなミスをいくつか挙げてみました。 この日記は、がるさんの日記に触発されて書いたもので、いくつかの例を引用しています。 がるの健忘録(2006/11/08) - 素晴らしき自動的な世界〜或いは「型のない」世界〜 型の問題 数値と文字列の比較 <?php $input = "2'; DELETE FROM hoge; --"; if ($input == 2) { // ↑TRUEと評価される がるさんの日記で紹介されていた例に、手を加えたものです。 if文中の式がTRUEになるのは、PHPの「==」演算子が、数値型と文字列型変数を比較する際に、文字列を(かなり強引なやり方で)数値型に変換するからです。変数の比較は、同じ型同士で行なうのが無難だと思います。

    PHPでの入力値チェックのすり抜け - T.Teradaの日記
    dosequis
    dosequis 2006/12/31
  • [セキュリティ]httponlyは普及するのか (2006-12-26 - T.Teradaの日記)

    Firefox2でもhttponlyが使えるという話を耳にしました。 httpOnly - Firefox Add-ons*1 httponlyがいよいよ普及するか? というのでネタにしてみます。 なお、この日記は、WinXP+IE6SP2環境を前提として書きました。 はじめに httponlyは、XSS脆弱性がある状況においても、cookieを窃取されないようにすることを狙ったIEの独自機能です。 MSDN - Mitigating Cross-site Scripting With HTTP-only Cookies この機能を有効にするためには、発行するcookieにhttponly属性を付けます。 Set-Cookie: key=value; domain=example.com; HttpOnly httponly属性が付けられたcookieは、JavaScriptのdocume

    [セキュリティ]httponlyは普及するのか (2006-12-26 - T.Teradaの日記)
    dosequis
    dosequis 2006/12/30
  • T.Teradaの日記 - ログイン直後のレスポンスの返し方

    多くの会員制Webサイトでは、ID/PWによるログイン処理がある。ユーザにログイン画面を提示し、ユーザがフォームにID/PWを入力してsubmitする。ID/PWがOKであれば、ユーザのブラウザにはログイン後の画面が表示される。 以下に、これを実現するための2通りのシーケンス図を描く。セキュリティの観点で望ましいのはA、Bのどちらだろう?というのが今回のテーマ。 Aではログイン要求に対してHTTPステータス200応答とともにログイン後画面をブラウザに返している。Bではログイン要求に302応答を返して(HTTP1.1では303応答)、ログイン後画面にリダイレクトしている。 結論を言うと、セキュリティの観点では、私はBの方が望ましいと考えている。 逆に言うと、Aにはどうにも気に入らないところがある。それは、ID/PWを含むリクエストに対して200応答を返していることだ。200応答のページは、ブ

    dosequis
    dosequis 2006/12/02
  • 1