[PHP-users 5018] Re: チェックボックスの使い方をまとめました
Naofumi Kondoh
php-users@php.gr.jp
Sat, 26 Jan 2002 19:51:53 +0900
ソフト工房の近藤です。
TakashiNakagawa wrote:
>
> 中川貴志@実家はまいパパさんの近く です。
おお。そうですか。 *-free ML では、まいパパさんに
お世話になってます。
...略...
> 他のところからURL(GET)で変数かかれたものを直接処理するのは
> 危ないのでは。というのを防ぐため。。。とか。
> ないでしょうか。
既出ですが、特に isset を使う場合は、php.ini の
gpc_order にどう設定しておいても、POST されてい
ない変数を GET で送ってグローバルにできてしまい
ます。
高本さんの例でいえば、ブラウザの URL 欄に手入力で、
http://xxxx/checkbox1.html?fmsun=1&fmfri=1
などと URLARG を追加してやれば、チェックボックス
をクリックしていないのに、クリックしたかのように
処理されてしまうということです。あたりまえですが。
COOKIE に同じ様な細工をされる事も。クロスサイト
スクリプティングでクッキー見られ放題になる場合も
ありますね。
曜日の入力ならたいしたことないかもしれないけど、
お金や信用にかかわる重大な CHECKBOX だと恐いです。
> じゃあ、ほかのところからPOSTで来たらどうしよう(^^;
> セッションID(時間制)でももたすとか。。。
既出だとおもいますが、一応。
HIDDEN や、URL ARG で送らないでサーバー側のセッション
情報に保存。
セッションIDなど URLARG か HIDDEN で送らなければ
ならない重要な情報には、MD5 などでチェックサムをつ
けて、改竄されていないか検査してから使う。
セッションID自体は、毎回IDを変更。ID発行から
一定時間以上経過した場合は無効にする。IDは、連番
など他のセッションの番号が推定しやすいものにはしない。
ユーザー入力の重要な項目(金額、発注数等々)は、
JavaScriptで、MD5 など サムチェックをつけて、
使用前にチェックして改竄しにくくする。
パスワードは、生では流さないようにする。チャレンジ
レスポンス等がいいのでは。
でも、JavaScript 使用禁止になると使えないですね。
某社の穴だらけブラウザのせいで、vbscript は当然と
しても、JavaScript まで一律使用禁止にされてしまう
と、セキュリティー向上の仕組みが生かされない。
なんか、BSE 問題みたい。信用不安ですね (^_^;;
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
PostgreSQL+PHP ソースコードジェネレーター セミナースライド
http://www.shonan.ne.jp/~nkon/cslpg.a.semi/
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/