タグ

validationに関するockeghemのブックマーク (9)

  • 妥当性とは仕様の所作 - SQLインジェクション対策とバリデーション - *「ふっかつのじゅもんがちがいます。」withぬこ

    繰り返しになりますが、妥当性検証は仕様の問題であってセキュリティ対策ではありません。 バリデーションは仕様の問題であってセキュリティ対策ではないとはどういうことか説明します。SQLインジェクションの対策は、1. SQLを文字列結合で作らない 2. プレースホルダを使う です。バリデーションは関係ありません。 簡単な例 Webアプリケーションで郵便番号を指定するフォームを考えましょう。 日郵便番号を指定するフォームの設計でよく見るものは大きく分けて2通りあり、上3桁と下4桁を別々に入力させるものと、1つのフォームにまとめて入力させるものです。住所から補完させる設計もありえますがここではおいておきます。 <input type="text" name="postal_code_1"> - <input type="text" name="postal_code_2"> <input typ

    妥当性とは仕様の所作 - SQLインジェクション対策とバリデーション - *「ふっかつのじゅもんがちがいます。」withぬこ
    ockeghem
    ockeghem 2011/12/01
    説得力ありますね~>『何をもって妥当とするかは仕様が定めるものであり、従って仕様がなければ妥当性を論じることはできません』
  • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

    _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

  • 何故かあたり前にならない文字エンコーディングバリデーション

    Last Updated on: 2018年8月8日私が4年前(2005年)に「Webアプリセキュリティ対策入門」を執筆していた時には、既に壊れた文字エンコーディングなどの不正な文字エンコーディングを利用したJavaScriptインジェクションやSQLインジェクション攻撃は比較的広く知られていました。この問題は当時のスラッシュドットジャパンでも取り上げられていました。/.で取り上げられたので、そこら中のWebサイトとユーザが被害に合うのでは?とヒヤヒヤしたので良く覚えています。 不正な文字エンコーディングを利用した攻撃は、文字エンコーディングを厳格に取り扱い、文字エンコーディングをバリデーションすれば無くなります。これを怠ると、システムのどこで問題が発生するか予想できなくなります。つまり、いい加減に文字エンコーディングを取り扱うと安全なシステムは作れないのです。 参考:エンジニア向けにもう

    何故かあたり前にならない文字エンコーディングバリデーション
    ockeghem
    ockeghem 2009/09/10
    『誤字・脱字では自分でも見つけましたが、こういう本の評価に重要なのでしょうか?』<重要。斜め読みで誤報しない、サンプルを動作確認する、なども重要/日記書いた『既にあたり前になりつつある…』http://bit.ly/qVLlB
  • 第10回■保険的対策として欠かせない入力値の検証

    これまではアプリケーション開発以前の基盤の話題を説明してきたが,今回からいよいよ具体的な設計・開発におけるセキュリティ対策について説明する。まずは,Webアプリケーションへの入力値の取り扱いについてだ。 Webアプリケーションにおける「入力」とは,主にHTTPリクエストに含まれるクエリー文字列(Query Strings),POSTデータ(Post Data),クッキー(Cookie),その他のHTTPリクエスト・ヘッダー(Refererなど)といったものを指す。入力源としてはこれら以外にも,電子メール,ファイル,データベース参照などが挙げられる。 ぜい弱性はどこで発生するか 具体的なセキュリティ対策の説明を始めるに当たって,ここで改めてWebアプリケーションの基構造と,様々なぜい弱性がどこで発生するかを示しておこう。図1は,Webアプリケーションの動作を「入力/処理/出力」という古典的

    第10回■保険的対策として欠かせない入力値の検証
  • へぼへぼCTO日記 - メールアドレス(addr-spec)の正規表現

    能書き 前エントリを書いてからいろいろと調べていて驚いたんだけど、日語のwebsiteで、それなりにまともにRFC822(RFC2822,RFC5322)に準拠した(もしくはきちんと意図的に準拠していない部分を選択している)正規表現はPerlだろうがPHPだろうがRubyだろうが軽くぐぐった程度では見当たらない。PerlのモジュールのEmail::AddressもEmail::Validも程度の差はあれ問題を抱えている。そこらへんの既存の出回ってる正規表現にどういった問題があるかなんてことは次回エントリにて。 というわけで、PerlPHPRubyでRFC5322準拠なメールアドレス(addr-spec)の正規表現を以下に示します。尚、addr-specの最終的な正規表現のみならずそれを作成するに至る部分も併記してあります。これは、最終的な正規表現だけでは難解すぎてとても理解できないか

    ockeghem
    ockeghem 2009/03/22
    id:nihen Google Ranking Checker http://google.bookstudio.com/ranking.html で調べると18位でした
  • 正規表現で「制御文字以外」のチェック - ockeghem's blog

    一般に、セキュアコーディングの基として入力値の検証(Validation)をせよということになっていますが、これが変な方向に行くといわゆる「サニタイズ」のような手法になってしまいます。以前も指摘したように、アプリケーションとしてのValidationは仕様に従って行うべきものです。 ですが、概ねどの場合でも行うべき検証として以下があると思います。 文字エンコーディングの妥当姓 制御文字(\x00〜\x1f, \x7f)のチェック 文字列長のチェック このうち後ろ二つを正規表現として書くにはどうすればいいかを考えていました。つまり、「制御文字以外の文字でm文字以上n文字以下」というようなチェックです。m文字以上、n文字以下は、{m,n}で書けるので、問題は「制御文字以外の文字」です。これはtextタイプのinput要素で、かつアプリケーション仕様としては文字種の制限をしない場合を想定してい

    正規表現で「制御文字以外」のチェック - ockeghem's blog
  • 入力値検証について(2): アプリケーションの先頭で行う入力値検証は業務要件により行うべし - 徳丸浩の日記(2007-09-09)

    _ アプリケーションの先頭で行う入力値検証は業務要件により行うべし 前回のエントリ徳丸浩の日記 - そろそろ入力値検証に関して一言いっとくか - Webアプリケーション脆弱性対策としての入力値検証についての内容をもう少し突っ込んでみたい。 このエントリは、幸いにも何人かの人たちの建設的なコメントをいただくことができた。それにより、私自身の考えを整理し、深めることができたように思う。 T.Teradaの日記 - 2007-09-08 "週"記(2007-09-07) 今回は、入力値検証の中でも、特にアプリケーションの先頭で行う入力値検証として何をすべきかということに焦点を絞って議論を進めたいと思う。 その前に、まずHTTPの復習から。 HTTPリクエストは申請書にたとえると理解しやすい この日記の読者の多くは先刻ご存知だと思うが、HTTPは非常にシンプルなプロトコルである。WebサーバはHT

  • 入力値検証の話 - T.Teradaの日記 - 2007-09-08

    Webアプリケーションのセキュリティ対策としての入力値検証について議論されています。 そろそろ入力値検証に関して一言いっとくか: Webアプリケーション脆弱性対策としての入力値検証について - 徳丸浩の日記(2007-09-05) 思ったことをいくつか書きます。 徳丸さんの日記は、ユーザがテキストボックスなどで自由に値を入力できる住所などのデータを主に対象としたものだと思う。 ただ、ユーザの自由な入力を起源としないデータも存在する(ここでは「システム起源のデータ」と呼ぶ)。 hidden、リンクURLに埋め込まれているGETパラメータ、Cookieなどには、この手のデータが入ることが多い。 システム起源のデータの多くは、ある型に従うことが期待されるもので、原則的に入力値検証をすべきもの(BMPの「ピクセルあたりビット数」と同じような感覚)。 システム起源のデータも、エスケープさえすればイン

    入力値検証の話 - T.Teradaの日記 - 2007-09-08
    ockeghem
    ockeghem 2007/09/09
    「システム起源のデータ」をhiddenフィールドなど格納することの是非についてはそのうち書く
  • Microsoft Corporation

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    Microsoft Corporation
  • 1