すべてのリクエスト(SERVER_SIGNATUREなど)にわたって静的でないすべてのPHP $_SERVER variablesをデータベーステーブルに記録する予定です。私は2つの質問があります:データベースへのPHP SERVER変数のログ
1)HTTP_ACCEPTなどのフィールドの最大長はありますか?私は次の構造を使用しています。それは最適化されておらず、最良ではありません。いくつかの/全てのバリアブルについて最大の長さを見つけることができる場所へのリンクは便利です。
2)PHP_AUTH_USERとPHP_AUTH_PWを保存することをお勧めしますか?これによりセキュリティ上の問題が生じる可能性がありますか?一方、これらのフィールドは、トラフィックを分析する際に遠隔からでも役立つことがありますか?
注:
1)今のところ、私はちょうど私がそれでもリモートで将来的に自分のサイトへのトラフィックを分析することで私を助けることができ、すべてをログに記録します。
2)いくつかのことについては、実用的な制限があると思っています(サーバー上に100文字以上の長さのパス名を作成しないなど)。しかし、私は、特にクライアントの要求に依存する分野で、安全にプレーしたいです。所与のヘッダー(例えばApacheのhttpdの中で事実上使用)
`PHP_SELF` varchar(1024) NOT NULL,
`SERVER_PROTOCOL` varchar(128) NOT NULL,
`REQUEST_METHOD` varchar(128) NOT NULL,
`REQUEST_TIME` timestamp NOT NULL,
`QUERY_STRING` varchar(4096) NOT NULL,
`DOCUMENT_ROOT` varchar(512) NOT NULL,
`HTTP_ACCEPT` varchar(2048) NOT NULL,
`HTTP_ACCEPT_CHARSET` varchar(2048) NOT NULL,
`HTTP_ACCEPT_ENCODING` varchar(2048) NOT NULL,
`HTTP_ACCEPT_LANGUAGE` varchar(2048) NOT NULL,
`HTTP_CONNECTION` varchar(1024) NOT NULL,
`HTTP_HOST` varchar(1024) NOT NULL,
`HTTP_REFERER` varchar(4096) NOT NULL,
`HTTP_USER_AGENT` varchar(4096) NOT NULL,
`HTTPS` varchar(128) NOT NULL,
`REMOTE_ADDR` varchar(64) NOT NULL,
`REMOTE_PORT` varchar(128) NOT NULL,
`SCRIPT_FILENAME` varchar(512) NOT NULL,
`SERVER_PORT` varchar(128) NOT NULL,
`SCRIPT_NAME` varchar(512) NOT NULL,
`REQUEST_URI` varchar(4096) NOT NULL,
`PHP_AUTH_DIGEST` varchar(512) NOT NULL,
`PHP_AUTH_USER` varchar(512) NOT NULL,
`PHP_AUTH_PW` varchar(512) NOT NULL,
`AUTH_TYPE` varchar(512) NOT NULL,
`PATH_INFO` varchar(4096) NOT NULL,
`ORIG_PATH_INFO` varchar(4096) NOT NULL,
このログの目的は何ですか? –
@Col。 Shrapnel:あなたの以前のアドバイスにもかかわらず、私はこのすべてのもので時間を無駄にしています:)。正直言って、私はまだ私は自分のもの(Googleアナリティクスなどではない)であり、ディスクI/Oをまったく使用しない(少なくとも要求を処理した時点では使用しません。要求が提供された後に優先度の低いプロセスとしてログが記録されるようになります)、時間が来たときに自分のアルゴリズムを使用して分析できるものがあります。 –
だから、あなたはまだ分かりません。私はあなたの質問に答えることは不可能だと恐れている –