アクセス解析ツールのSlimStatをインストールしたときに気付いたのですが、MODxの/index.phpにて環境変数のHTTP_REFERERとHTTP_USER_AGENTから特定の文字以外を削除しているコードがありました。
// secure variables from outside
// added 03-05-06
foreach(array('HTTP_REFERER','HTTP_USER_AGENT') as $outside) {
$_SERVER[$outside] = isset($_SERVER[$outside]) ? preg_replace("/[^A-Za-z0-9_\-\,\.\/\s]/", "", $_SERVER[$outside]): '';
}
で、この状態だとSlimStatでアクセス解析したときにHTTP_REFERERがうまく解析できず、Referring Domainが拾えなくなってしまいます。
(特に確認はしてませんが同様にSearch Stringも拾えないと思います)
そこでこのコードを次のように変えています。
記号の「?、=、%、&、:」を削除させないようにしました。
// secure variables from outside
// added 03-05-06
foreach(array('HTTP_REFERER','HTTP_USER_AGENT') as $outside) {
$_SERVER[$outside] = isset($_SERVER[$outside]) ? preg_replace("/[^A-Za-z0-9_\-\,\.\/\s\?=%&:]/", "", $_SERVER[$outside]): '';
}
これでReferring Domainも拾えるようになっているのですが、このコードのコメントに書いている「secure variables from outside」と言うのが気になります。
しかも変更された日付が比較的新しいので、何か意図があってコードを追加したのだとは思いますがご存知の方はいますでしょうか?
(このコードのせいでMODx標準のアクセス解析もうまく動いてないような気も…
一応、MODx標準のアクセス解析はOFFにしてしまいました)
それにしてもSlimStatはすごいですね。
かなり細かく解析してくれて驚きです