何が良いですか?ワードドキュメント、pdfs、スキャンしたイメージなどのユーザードキュメントをデータベースまたはフォルダに保存できるようにする。セキュリティは最重要課題です。私は誰かがdomain.com/user/social/profile/user_images/23432434.pngのようなことをして、それを見ることを望んでいません。ユーザがアップロードした文書をphymyadminに保存する方が良いか、フォルダに保存する方が良いでしょうか?
ありがとうございました。
何が良いですか?ワードドキュメント、pdfs、スキャンしたイメージなどのユーザードキュメントをデータベースまたはフォルダに保存できるようにする。セキュリティは最重要課題です。私は誰かがdomain.com/user/social/profile/user_images/23432434.pngのようなことをして、それを見ることを望んでいません。ユーザがアップロードした文書をphymyadminに保存する方が良いか、フォルダに保存する方が良いでしょうか?
ありがとうございました。
セキュリティが最重要課題の場合は、.htaccessを使用してコンテンツフォルダへの公開アクセスを閉じます。
アセットをパブリックフォルダ(アプリケーションが存在するドキュメントのルートフォルダ)の後ろに保存し、http://myapp.com/assets.php?id=13
のように取得し、assets.phpがファイルを取得してコンテンツを出力するようにすることができます。
今assets.php
に、あなたが役割を確認することができ、などなど
例えばのように:(あなたのスクリプトがある)
DBまたはHDに保存すると、実際には何もしません。重要なのは、ファイルをどのように処理するかです。
この目的のために、任意の種類のハッシュ関数を使用できます。
、それらのファイルを取得するには、pretyは難しいでしょうそれをキャプチャと組み合わせると。
データベースにファイルを格納することは、後で後悔することがよくあります。データベースにのみファイル名またはIDを格納します。
アクセスを防止する場合は、ファイルをDOCUMENT_ROOT
の外部に保存します。アクセスを処理するラッパースクリプトを作成し、呼び出されるときreadfile()
またはX-Sendfile:
のいずれかを使用します。 (基本的には、SQLストアド・リソースに対しても同じことが行われます)。
ファイルをサーバーのルートの上に保管します。例えば
:
の/ var/www /の - サーバルート。公開されている /var/documents - ここにユーザーファイルがあります。ルートの上にあり、公開されていません。
Serverのドキュメント:
#add headers
echo file_read_contents("/var/documents/file.doc");
/var/www/serve.phpでSQLでファイルを保存するには、のような低速としていくつかの問題が発生することがあります。 あなたの.htaccessに
# no one gets in here!
deny from all
を使用してエコーのfile_get_contents($ファイル名)を使用することができます。またはreadfile($ filename);
phpmyadminはデータベースではなくフロントエンドです。 –