register_globals
phpinfo()を実行すると、いろいろな情報を閲覧することができるのですが、
最初にPHP Coreというセクションがあります。この中でセキュリティーに
関係しているものの一つとして、register_globalsというのがあります。
PHP4.1.0までは、この値がデフォルトでONになっているのですが、
それ以降のバージョンでは、デフォルトではOFFになっています。
古いシステムを使っている場合や、古いシステムと互換性を持たせるために
ONにしている場合があるので、注意してみてください。
この設定がONになっていると、プログラミング的には変数の
受け取りが楽になるのですが、セキュリティー上の問題があるので、
通常はOFFにしておくことをお勧めします。
formから、POSTやGETでデータを渡す時、register_globals=offの場合は、
データの受け取りに、$_POSTや$_GETを使うのが一般的ですが、
register_globalsがONになっていると、$_POSTや$_GETを使わなくても
変数が受け取った値で初期化されているのです。
例えば、form文の中で、
<input type=hidden name=var value=a>
と記述して、POSTで次のページで変数を渡したとします。
a) register_globals=onの場合は、
$varの中に既に"a"という値がセットされています。
つまり、好きな値を変数にセットすることが出来てしまうのです。
もし、$varの値がlogin認証などに関係する値だったら、
認証を通さずに、その値を外部から操作できる可能性が
出てきてしまいます。
b) register_globals=offの場合は、
$_POST["var"]の中に"a"という値が入っています。
$varという変数はまだ定義されていないので、
利用したい場合は、$var=$_POST["var"]のように
して定義する必要があります。
詳しくは、以下のサイトにregister_globalsの間違った使用例が記載されているので
参考にしてみてください。
http://www.php.net/manual/ja/security.registerglobals.php
phpinfo()
phpinfo()は、PHPの様々な設定を一画面で確認することが出来るので、非常に
便利な関数です。EGPCS(Environment, GET, POST, Cookie, Server)の情報も
含まれているので、デバッグにも利用することが可能です。
ただし、絶対に他人に見せてはいけません。
サーバの情報を公開してしまうと、ハッキングの対象になるので、避ける必要があります。
以下のコードを実行してみましょう。
<?php
phpinfo();
?>
重要な所は少しずつ解説していきます。
Winとマックでスタイルシートを分ける
WinとMacではフォントの大きさが違って見えるので、同じスタイルシートを使うと、Macの方が
文字が大きくなってしまう。
そいういう場合は、JavaScriptを使ってスタイルシートを分けると良い。
if (navigator.appVersion.indexOf("Mac") >= 1 ){
document.write('<link rel=stylesheet type=text/css href=mac.css>');
}else{
document.write('<link rel=stylesheet type=text/css href=win.css>');
}
osCommerceのプログラム
osCommerceのプログラム一覧です。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/tep-j/oscommerce-2.2ms1j/catalog/#dirlist
これらのファイルを少しずつ解読していこうと思います。
HTTPヘッダー解析ソフト
通常ブラウザーに表示されない HTTPヘッダーですが、ソフトウェアを使うと簡単に
閲覧することができます。
http://www.blunck.info/iehttpheaders.html
ただし、IEでしか動きませんので注意してください。
osCommerceの紹介
osCommerceは、オープンソースのシッピングサイト構築ソフトです。
もちろん、利用料はかからないのでとてもお勧めなソフトなのですが、
カスタマイズするには専門知識が必要です。
このコーナでは、osCommerceを解読してカスタマイズできるところまで
頑張ってみようと思います。
専門的な話題が多くなりわかりづらいところがあるかとは思いますが、
ご了承願います。
osCommerceの日本語サポートサイト:http://www.bitscope.co.jp/tep/
osCommerceの日本語開発サイト:http://sourceforge.jp/projects/tep-j
osCommerce参考サイト: http://www.os-commerce.jp/
osCommerce英語サイト: http://www.oscommerce.com/