0

ユーザーが好きなものをアップロードできるサービスがあります。コードの実行などを無効にしましたが、アップロードした.htaccessファイルの実行を防ぐ方法が見つかりません。

4

1 に答える 1

0

ユーザーがアップロードしたファイルの名前は常に変更する必要があります。そうしないと、ユーザーは簡単にアップロードhack.phpして起動し、サイトをハッキングしたり悪用したりすることができます。したがって、これは実際にはあなたの問題です。

アップロード後にファイルの名前を変更します。元の名前(つまり、サイズ、mimeタイプなど)をデータベースに保持し、スクリプトを介してファイルのダウンロード/表示をルーティングします。スクリプトは、その元の名前をDBから取得し、適切なヘッダーを作成しfile()てから、そのファイルのコンテンツをユーザーに送信します。これにより、サーバーでファイルを実行できなくなります

または、それ.htaccessだけで問題が発生する場合(ただし、もっと広いと言っても過言ではありません)、特定のディレクトリで.htaccessを無視するようにapacheを設定できます。マシンのルート権限が必要ですが、<Directory FOLDER>ホスト構成にブロックを追加して配置することができますAllowOverride None

または、アップロード時にターゲットファイル名を確認し、およびを拒否し.htaccessます.htpassword。または名前がで始まるもの.

于 2012-11-24T08:26:29.883 に答える