[PHP-users 1073] Re: 特定ファイル/ディレクトリへのアクセス拒否

Takuma Wabiko php-users@php.gr.jp
Sat, 4 Aug 2001 02:55:34 +0900


こんばんは。我彦です。

On Fri, 3 Aug 2001 13:41:34 +0900
"Yasuo Ohgaki" <yohgaki@hotmail.com> wrote:

(snip.)
> > これは $q .= $k.$user_vars[$k].MAGIC のようにして、ある程度解決でき
> そう。
> 
> ちょっと前に、このように変更しました。
> このまま使ってしまうとセキュリティー上問題があるので、私が実際に利用し
> ている方法の一つももexample付け加えておきました。もし、本格的に利用す
> るのであれば関数を多少変更して、同じような方法で利用されることをお勧め
> します。
> 
> # 私の場合、ページへのアクセス権限の仕組みが比較的複雑だった
> # ため権限DBのLook Up、検索パラメータの再チェック等の削除が出
> # 来た為、システムへの負荷がかなり減らす事ができました。

なるほど。

そうゆうことでしたら check_user_vars の他にも変数をチェックする
機構があれば or 実装すれば、とても便利に使える関数ですね。

PHP かどうかわかりませんが( Perl でのお仕事になるかも)、さっそく
使わせていただこうと思います。どうもありがとうございます。



> > それと、連想配列の並び順に手をつけずに連結していますが、
> > $HTTP_*_VARS の値が常にソートされる、という保証が無いなら
> > ksort を適用させた上で連結したほうが良いと思います。
> 
> PHPはGET,POSTの値を前から順番に初期化するのでこれに依存しています。サ
> ンプルコードとしては十分と思ったのですが、不親切なのでHTTP_*_VARSから
> チェックする変数を$keysとして渡せる様に変更しておきました。

ちょっと神経質になりすぎかも知れませんが...


次のような HTML があった場合、

<form action='form1' method='get'>
  <input type='hidden' name='n1' value='v1'>
  <input type='hidden' name='n2' value='v2'>
  ..
</form>

次のどっちが返って来ても大丈夫なようにする必要があると思います。

1. http://www.example.co.jp/~user/script.php?n1=v1&n2=v2
2. http://www.example.co.jp/~user/script.php?n2=v2&n1=v1

つまり、 HTML に現れた順番通りに query ができあがってるか、
そうじゃない場合もあるか、を考えると 1 と 2 の場合があります。

今まで見たブラウザだと 1 の方法だけしか返って来ないんですが、
2 の形にしてはいけない、という仕様を見たことが無いので、
(私が知らないだけかも。^^; ) やっぱり ksort した方が良いかも知れません。


# むー。考え過ぎかな。
# 無視してもらっても結構です。(^^;