1

ユーザーがアップロードしたPDFがいくつかあり、それらはハードドライブに保存されています。これらのPDFは、実際にはアップロードしたユーザーのみが表示できるようにする必要があります。しかし、現時点では安全ではありません。誰かがPDFの名前を推測した場合、それは他の誰もが見ることができます。

例えば:http://www.something.com/PDFs/abcghjiekm.PDF

これはセキュリティ上の脅威です。私ができるようにしたいのは、これらのPDFへの要求を処理し、それを私のDBと比較して、このPDFが実際に要求したユーザーのものであるかどうかを確認する何らかのロジックを用意することです。どうやってやるの?

編集:私のウェブサイトはすでに稼働しているので、FileStreamを使用できません。すべてのコードベースを変更して、すべてのaspxページに移動し、PDFにアクセスする場所を探したくありません。

4

3 に答える 3

2

StaticFile-Handlerの代わりにIISの特別なHttpHandlerを介してPDFを処理し、Access-Rightsを確認することができます。

MVCを使用している場合は、/ PFDs / {file} .pdfのようなルートで、コントローラーがコンテンツを返します。

于 2012-10-05T08:09:17.953 に答える
0

また、ある種の隠すことによるセキュリティを使用することもできます。これは、安全性は低くなりますが、実装は簡単です。たとえば、PDFをPDF // abcghjiekm.PDFなどのフォルダーに保存できます。ここで、guidはアップロードするユーザーのuserIdです。このように、特定のファイルの正しいパスを推測することははるかに困難です。

プライベートユーザーデータを不正アクセスから本当に保護する必要がある場合は、この方法をお勧めしませんが、達成しようとしているのが何らかのエラー保護(ユーザーが誤って他のファイルにアクセスしないようにするため)だけである場合これはそれを行う必要があります。

本当のセキュリティが必要な場合は、Grumbler85が提案したことを実行することをお勧めします。

于 2012-10-05T08:16:37.803 に答える
-1

これらのファイルを保存するには、SQLServer2008以降の一部であるFileStreamを使用する必要があると思います。 http://technet.microsoft.com/en-us/library/bb933993%28v=sql.105%29.aspx

それを使用して、ファイル領域はディスクに保存されますが、特別な場所にあります。そして、問題はありません。つまり、誰かがファイルを変更したい場合です。

于 2012-10-05T08:02:46.230 に答える