Home > Webサイト > register_globals onの恐怖

register_globals onの恐怖

サークルのサイトがだいぶ進んだので、気休め的にDisneyParks.infoもまた作りこみ再開しました。

で、クチコミのシステムを作ってて気づいた!
$_Sessionの値が突然書き変わってる!!!

$_Session(セッション)の値が書き変わるって相当ヤバイことなんですよ。
普通、ログインが必要なシステムとかってセッション変数にユーザーIDとかを入れて持ちまわるようにするから、勝手に変わったら、いつの間にかAさんがBさんに変わるようなものなんです。

で、いろいろ調べた結果、register_globalsがOnになっていたのが原因。
Onになってると、たとえば$_Session['id']にユーザーIDを入れて持ちまわらせてる場合、

$_Session['id]が6の人が、profile.php?id=2というURLにアクセスする。

profile.phpには、


$id=$_GET['id'];
echo "ユーザーID:{$id} を参照しています";


と書いた場合に、$idに$_GET['id']を入れただけのはずなのに$_Session['id']にも$_GET['id']が入ってしまうのです。


で、対策として.htaccessでregister_globalsをoffにしようとしたけど、その.htaccessファイルをどこに置けばいいのか分からなくて困ったw

使ってるサーバーにもよるけど、coreserverの場合はrootに置かないと動かなかった。
public_html内やpublic_htmlの下にあるフォルダに置いてもダメでした。

ってことで、register_globalsをoffにしたい場合は、一番上に.htaccessを作って、

php_flag register_globals off

と書けばOKみたいです。

ちなみに、magic_quotes_gpcも同じように

php_flag magic_quotes_gpc off

と書けばOKみたい。

このエントリーをはてなブックマークに追加 Save This Page to del.icio.us このエントリーをlivedoorクリップに追加 このエントリーをニフティクリップに追加 このエントリーをBuzzurlに追加このエントリーをBuzzurlに追加 このエントリーをFC2ブックマークへ追加 このエントリーをnewsingへ追加 このエントリーをYahoo!ブックマークに追加 このエントリーをイザ!ブックマークに追加

Comments:0

Comment Form
Remember personal info

画像の中に見える文字を入力してください。

Home > Webサイト > register_globals onの恐怖

Search
Feeds

Page Top