ユーザーが好きなものをアップロードできるサービスがあります。コードの実行などを無効にしましたが、アップロードした.htaccessファイルの実行を防ぐ方法が見つかりません。
1 に答える
0
ユーザーがアップロードしたファイルの名前は常に変更する必要があります。そうしないと、ユーザーは簡単にアップロードhack.php
して起動し、サイトをハッキングしたり悪用したりすることができます。したがって、これは実際にはあなたの問題です。
アップロード後にファイルの名前を変更します。元の名前(つまり、サイズ、mimeタイプなど)をデータベースに保持し、スクリプトを介してファイルのダウンロード/表示をルーティングします。スクリプトは、その元の名前をDBから取得し、適切なヘッダーを作成しfile()
てから、そのファイルのコンテンツをユーザーに送信します。これにより、サーバーでファイルを実行できなくなります
または、それ.htaccess
だけで問題が発生する場合(ただし、もっと広いと言っても過言ではありません)、特定のディレクトリで.htaccessを無視するようにapacheを設定できます。マシンのルート権限が必要ですが、<Directory FOLDER>
ホスト構成にブロックを追加して配置することができますAllowOverride None
。
または、アップロード時にターゲットファイル名を確認し、およびを拒否し.htaccess
ます.htpassword
。または名前がで始まるもの.
于 2012-11-24T08:26:29.883 に答える