私はこのジレンマを何度も持っています。私は一度、すべてのことについて私の頭の中で答えを調整したいと思います。ディスクへphp - ストリーミングVSのPROとCON。書き込み/キャッシング
書き込み:
PHPでファイルを作成するときに、* .zipファイル、* PDFまたは他の同じように、PHPはあなたに2つの動作オプションを提供します。
ストリームを直接ダウンロードするストリーム。考慮すべき
ものがあります:
- セキュリティ(通常)
- CPUおよびファイル
- ファイルの整合性
- ファイルの更新
- のための時間を提供し、他の対価そのIリストしなかった。
実用例:
Let'sは私が画像を詰めたzipファイルをダウンロードするためのウェブサイトを持っていると言います。
ジップをストリームすると、明らかにCPU(および時間)がかかります。
は私がディスクに書き込む場合 - それは私がディスクに書き込む場合は
(誰かが「クロール」サイトは、ZIPフォルダまたは何らかの形ファイル、およびすべての一括ダウンロードを見つけることができると仮定して)セキュリティ上の問題となる可能性があり、私は意志zip内のファイルを更新するかどうかをチェックする必要があります。さらに、ファイルの整合性を確認する必要があります。
とにかく - どちらの状況でどのような状況で推奨される方法であるか、これに対するベストプラクティスは何か、その他の洞察力については人々が何を言いたいのか聞きたい。
あなたは - すでに何かを学んでいます - 私はCPUを原価計算するたびにファイルを開く必要がある内部CRCを使用するのに馬鹿でした。ファイル名に追加するためにハッシュを使用すると、より経済的になるでしょう。セキュリティに関する「正しいことをやる」ということについてもう少し詳しく説明できますか?どのような配慮が必要ですか? –
ファイルに一般にアクセスできないようにしてください。あなたがディスクにそれを書いているからといって誰もそれをダウンロードできるわけではありません。公的にアクセス可能なWebroot *内のディスク*に書き込む場合にのみ当てはまります。 Webroot以外のディスクに書き込んで問題を解決できます。 – deceze
これは、適切なアクセス権を持つすべての人が自由にすべてのファイルをダウンロードできるという条件の下で真です。ファイルごとにダウンロードを制限する必要がある場合はどうすればよいですか?許可なしでONEリンクを提供するだけでは、この問題は解決しません(何かが紛失していない限り)。 –