人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://gihyo.jp/dev/serial/01/php-security/0005?page=3

上記のページでなぜ、「不完全なバリデーション」なのか理解できませんでした。(preg_match)
どなかたお教えいただけないでしょうか?

●質問者: miya1414
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:バリ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● studioes
●60ポイント

^[0-9]+$

^は行の頭で、$は行の終わり(1行目の終わり=改行)を表すものです。

改行コードを含めて送信すれば、

1

' or true=true or'

みたいなものでもマッチしてしまいます。

下のD修飾が正しいのは

http://php.mirror.camelnetwork.com/manual/ja/reference.pcre.patt...

D (PCRE_DOLLAR_ENDONLY)

この修飾子を設定すると、パターン内のドルメタ文字は、検索対象文字列の 終わりにのみマッチします。この修飾子を設定しない場合、ドル記号は、 検索対象文字列の最後の文字が改行文字であれば、その直前にもマッチします。 この修飾子は、m を設定している場合に無視されます。 Perl には、この修飾子に等価なものはありません。

◎質問者からの返答

ありがとうございます。理解できました。

しかし、検証のために改行コードを含めて送信し、チェックをすり抜けるサンプルコードがどうしても作成できませんでした。

お手数ですが、サンプルコードを書いていただけないでしょうか?



●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ