[PHP-users 14840]Re: GETのセキュリティ

KITAO Kaoru kitao @ netcube.jp
2003年 4月 24日 (木) 03:02:31 JST


こんばんは、北尾です。
斜め読みしてますので、すでに解決済みの話題でしたらすみません。
&素人なりの意見ですみません。

>ちなみに実際のプログラムではIDはhiddenにしてPOSTで渡しています。
>なのでこの件に関して、何か問題があるというわけではありません。
>こんな時にわざわざGETは使わなければいいだけの話なのですが、
>ふと疑問に思ってしまったまでです。

GETで渡すか、POSTで渡すかというところは、この件についてはどちらでも
関係ないような気もします。送信しようとしているデータが単純にURIとして
目に見える格好なのか(容易に偽装できるか)、目に見えない状態なのか
(偽装するのに一手間入れるか)だけの違いですよね。

>この状態でif文でvalue値が1あるいは2あるいは3でない時はエラーとした場合、
>いくらフォームの値を偽装しようにも不正なデータは入れようがないと思うのですが。
>(勿論SQLインジェクションなどへの対策は施してあるのが大前提です。)

SQLインジェクションへの対策っていうのは、ようはそういうことなんです(多分)。
「送信されてきたデータを、そのままSQLへ代入するんじゃなくて、事前にそのデータの
妥当性をチェックしましょう」ってことですよね。
このあたりは重松さんがウェブで丁寧に説明されていらっしゃいますので、
そちらを参考に・・・。URL・・・どこでしたっけ?。重松さん?。

>#if文が偉い長くなってしまって面倒におもうのですが、
>#何かいい手段はないでしょうか。

正規表現とか使えばいいのでは?、と思います。
ereg("^[0-9]{1,}$",$ID)
とか。少なくともこれでどんなIDを渡されても、SQLインジェクションを招くような
データであるかどうかはチェックできます(よね?、多分)。(^-^;;。


-------------------------------------------
   □   KITAO Kaoru (北尾 馨)
  □  CubeWorks Inc, Ibaraki Pref.



PHP-users メーリングリストの案内