4

ユーザーが ASP ページを使用して写真をアップロードするために使用する Web サーバーにフォルダーがあります。

IUSR にフォルダーへの書き込みアクセス許可を与えるのは安全ですか? 何か他のものを確保する必要がありますか? ハッカーが ASP ページを迂回してコンテンツをフォルダに直接アップロードするのではないかと心配しています。

Windows 2003 Server で ASP クラシックと IIS6 を使用しています。アップロードは FTP ではなく HTTP 経由です。

編集:明確にするために質問を変更し、回答をコメントとして変更します。

4

4 に答える 4

3

また、ユーザーが Web からアクセスできるフォルダーにアップロードできないようにすることをお勧めします。最高の MIME タイプの検出でさえ失敗する可能性があり、たとえば、MIME スニッフィングが失敗した場合に jpeg を装った実行可能ファイルをユーザーがアップロードすることは絶対に望まないが、IIS のものは正しく機能します。

PHP の世界では、攻撃者が悪意のある PHP スクリプトをアップロードし、後で Web サーバー経由でアクセスする可能性があるため、状況はさらに悪化します。

常に、アップロードされたファイルをドキュメントルートの外側のディレクトリに保存し、追加のサニタイズを行うアクセススクリプトを介してファイルにアクセスします(少なくとも画像/ MIMEタイプを明示的に設定します.

于 2008-09-08T14:35:25.053 に答える
1

ユーザーはどのように写真をアップロードしますか?アップロードされたファイルを受け入れるASPページを作成している場合、IISはファイルI / Oを実行するため、IISを実行しているユーザーのみがフォルダーへの書き込みアクセス許可を必要とします。ASPページでは、ファイルサイズを確認し、ハッカーがハードドライブをいっぱいにするのを防ぐために何らかの認証を行う必要があります。

FTPサーバーまたはその他のファイル転送方法を設定している場合、答えは選択した方法に固有のものになります。

于 2008-08-22T15:03:59.417 に答える
0

書き込み権限を付与する必要がありますが、ファイルのmimeタイプをチェックしてイメージを確認できます。FSOは次のように使用できます。

set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile("upload.jpg")
'image mime types or image/jpeg or image/gif, so just check to see if "image" is instr
if instr(f.type, "image") = 0 then
   f.delete
end if
set f=nothing
set fs=nothing

また、ほとんどのアップロードCOMオブジェクトには、ファイルを書き込む前に確認できるtypeプロパティがあります。

于 2008-08-23T17:17:00.650 に答える
0

おそらく、ウェブサイトからアクセスできないフォルダーからファイルをアップロード/ダウンロードできるアップロード コンポーネント (私は ASPUpload を使用しました) を使用することをお勧めします。

ファイルはコンポーネントを介してのみ利用できるため、いくつかの認証フックを取得し、誰かが何気なくフォルダーを参照してファイルをダウンロード (またはあなたの場合はアップロード) することを心配する必要はありません。

于 2008-09-16T21:57:52.787 に答える