セキュリティ脆弱性にphp fwrite?
質問
最近、私は、移行っ企業のwebサイトを自社のサーバ(Apache)からホスティング会社(IIS).グループそのものにした僕が貧しい仕事のものが混乱に移行します。ながらの移動もかなりスムーズなのではerror_logあ欠です。
というより継続的にgrepのではerror_logのための"ファイルが存在しない"の誤差に関するドメインについては約15でスタートしましたこれらのサーバー-破壊も修復もおもしろくなかやすのではないのが404エラーが発生した:
- リダイレクトphpのページのパスのURLを要請
- その新しいphpのページでのダンプをURLにログインっぽいファイル
していただいたものとさせていたこんなっていくことは価値ある事業として取り組む。わが基になる問題は、潜在的なセキュリティ問題w/利用fwrite?なとする必要がある何らかの研磨のユーザー入力が入力が追加されるファイルとは何ですか?この入力がないのでどこにも行かずの近くのデータベースをもとにつながるのです。よろしくお願いします。
解決
として
の、多くの危険があってはならない:のみあなたがユーザーから取得します事は、あなたがファイルに書き込むよコンテンツで、あなたがそのファイルを実行しますが、それを読んでいない場合、それはかなりOKである必要があります。404エラーを記録するというアイデアは、この方法は新しいものではありません。私はそれがかなりの数回行われ、それを用いて、主要な問題は、<全角>直面したことがない見てきました(最大の問題は、私が見たが、非常に大きなになったファイルでした速い、)^^あまりにも多くのエラーがあったので、の
たとえば、Drupalはこのビットを行います。404エラーが記録されている - しかし、データベースに、それはウェブインターフェースを使用してそれらを分析する方が簡単ですので、
他のヒント
まあ、いつものファイルシステムのもの:ファイルが行く場所をユーザーが指定できません。script.php?filename=../../../../../../../etc/passwd
のようなものであってもに/ etc / passwdファイルの書き込みの機会を持つべきではありません(また、スクリプトがFSを持つべきではありませんそのための権限)。
それ以外は、関数fwrite()は、コマンドモードのいくつかの並べ替えにジャンプできるようになる特殊な文字を持っていません。
また、404ページは(httpd.confの)非常に単純です。
ErrorDocument 404 /error_page.php
とだけファイルにREQUEST_URL
をダンプ
fwriteのかなり安全である必要があります。
別の方法としては、通常のリストがページを見つけていないいくつかのアクセスログ解析を使用することができます。
は、外部から唯一の誰かがそれをディスクに書き込むために取得することです。明らかに、ファイル名が無効なURLで渡されるパラメータであってはなりません。いくつかの1は本当に長いURLで無効なページ要求のトンを送ることによって、それを悪用する可能性があります。しかし、彼らは単に一般的な攻撃であることがより効果的であろう他の方法があるときは、これとケアを十分にやっていた知っている必要があります。
はHTML(またはコードを埋め込むことができるように、たまたま他のファイルタイプ)としてログを作成している場合であるために外を見るための潜在的な問題があります。これらのファイルはもちろん、XSS攻撃に対して脆弱です。
共通logfile攻撃が求めのUrlを含む悪意のある組み込みが可能です。これらのUrlに直接書いたログファイルして実行きのファイルをwebブラウザです。
- を確保するファイルを書きできないとしてHTMLをwebサーバー
- 考URLエンコーディングやHTMLエンコーディングのUrlに対するものとなります。
あなたはすでにあなたのerror_logに404エラーを記録しなければなりません。
すべての手段によって、は、ユーザーに親しみやすいエラーメッセージを与えるために、カスタムエラーハンドラを使用しますが、このサイトは深刻なスループットの任意の並べ替えを見れば、スクリプトからfwriteのを使用することは良いアイデアではありません。 PHPは、本質的にファイルの同時アクセスをサポートするための高度なファイルロックのセマンティクスの並べ替えを持っていない - しかし、ウェブサーバがあなたのために情報を記録しているので、なぜ
わざわざ?