web-dev-qa-db-ja.com

アップロードクライアントドキュメントをWebアプリケーションに安全に保存する方法

ITスキルのない小さな会社が、顧客がさまざまなデータを入力してPDFをアップロードできるWebアプリケーションを実行したいと考えています。ドキュメントは製品仕様に関するものであり、安全に保管する必要があります。

PHPタスク用のアプリケーションを販売したい外部のIT担当者が1人います。彼はドキュメントを直接Webサーバーに保存し、Googleドライブと同期させて、彼らが内部文書。

  • ドキュメントをサーバーに保存しても大丈夫ですか、それとも潜在的なセキュリティ問題が発生しますか?アップロード後、サーバーにファイルを保持するべきではなく、アップロードが行われた直後に、それらをWebサーバーから離れてより保護されたドメインに入れるべきだと思いますか?

  • これらの機密ファイルをGoogle Apps for businessアカウントと同期してもよろしいですか? Google資格情報は、Webアプリケーションに認識されている必要があります。これは別のセキュリティリスクをもたらしますか?

  • このシナリオでPHPを使用しないことをお勧めしますか?

  • これに対するより良い解決策はありますか?

どうもありがとう! :-)

4
Nordic

まず、バイナリの「ok」または「not ok」の観点からセキュリティを考えるべきではありません。行うすべての選択には、理解したいセキュリティ上の影響があります。

Webサーバーのマシンにファイルを保持することに関しては、ほとんどの商用アプリケーションでは通常これは問題になりません。あなたは彼らがウェブサーバー経由でアクセスできないことを確認する必要があるだけです。 Webサーバーのドキュメントディレクトリの外にそれらを保存するのが一般的な戦略です。そしてもちろん、サーバー自体のセキュリティを無視しないでください。

ファイルをGoogleドライブのフォルダに入れても問題ありません。もう1つのオプションは、定期的にローカルネットワークにrsyncすることです。しかし、それは会社が何を必要としているのかによります。別のオプションは、ファイルにアクセスするためのWebベースのシステムを会社に提供し、ファイルの複製をすべて排除することです。

PHPで結構です。言語の選択が主な要因になることはめったにありません。アプリケーションコード自体でセキュリティの問題が発生する可能性ははるかに高くなります。 PHPを最新の状態に保ちます。しかし、それはすべてのサーバー側言語に当てはまります。

3
GrandmasterB

ここにはいくつかの潜在的な問題があります。確かに言うには技術的なソリューションの詳細は十分ではありませんが、それは洗練されていないアプローチのようです。

ただし、テクノロジの選択を批判するのではなく、アプリケーションに必要なセキュリティ基準を確立し、ソリューションがどのように各ポイントを達成するかを尋ねる必要があります。

例えば。

  • 文書は暗号化して保存する必要がありますか?その場合、どの程度の暗号化が必要ですか?

  • ドキュメントへのアクセスを誰に許可する必要があり、不正アクセスはどのように防止されますか?

  • ドキュメントを保存する期間と、ドキュメントが正しく破棄されるようにする方法。

ドキュメントをフォルダに保存し、Googleと同期するphp Webサイトの場合、これらの質問にすべて当てはまるようです。

ドキュメントは暗号化されていません。サーバーが危険にさらされている場合、攻撃者はドキュメントを読み取ることができます。

Googleドライブに同期するには、ドキュメントごとに認証設定を行うために、さらに複雑さが必要になるでしょう。また、Googleドライブの認証情報はどのように保護されますか?アップロードコードを取得すると、すべてのドキュメントもダウンロードできます。

最後に、Webサイトの要求/応答の性質は、古いドキュメントを削除するというスケジュールされたタスクの性質に役立ちません。

「しかし、私たちがする必要はない」というスタイルの答えには注意してください。

---編集

GrandmasterBの答えは、ファイルをWebサーバーに保存することについての私の見解を拡張するように私を促しました。

私の見解では、これは一般的に非常に悪い習慣であり、多くのセキュリティ問題につながる可能性があります。

1:ディレクトリをクリアする。

ディレクトリ自体を実際に使用しない場合は、代わりにGoogleドライブなどを同期します。その後、webserverディレクトリは、ファイルをPCに取得するプロセスの技術的なステップとして忘れられる可能性があります。あなたは、どこかでインターネット上にぶら下がっている忘れられたファイルのディレクトリになってしまいます。

2:バックアップ

ウェブサーバーをバックアップする場合、ファイルのディレクトリもバックアップしている可能性があります。繰り返しますが、これにより、忘れられていたコピーまたはデータのコピーが浮遊します。

3:Webファームとサードパーティ

最近のWebサイト実行の一般的な方法は、一度に複数のサーバーを稼働させることです。たとえそれが単なるホットスワップボックスである場合でも、管理および同期するファイルの2つのディレクトリがあります。負荷に対処するためにより多くのボックスを回転させたいですか?プロバイダーを変更しますか?アップグレードしますか?それぞれが、顧客データが保存されている場所が増えることを意味します

さらに、最近自分のウェブサイトをホストしているのは誰ですか?あなたのウェブサイトは「クラウド内」にあるか、サードパーティにある可能性があります。これには独自のセキュリティ上の懸念がありますが、「私のウェブサイトのコードのセキュリティ」と「顧客のデータのセキュリティ」をリンクしたくない場合は、それを支援できます。

要約すると、私の見解では、データを追跡できず、内部で「顧客のために証券レビューを行う必要があり、秘密文書のコピーが10部あることに彼らは怒っています」ある種の単一のドキュメントリポジトリで、他の問題とは別

2
Ewan

提供されたすべてのフィードバックをありがとう!

私は彼らに次のアドバイスをします:

プログラマーがOWASPセキュアコーディングガイドラインに従っていることを確認してください。

パスワードが暗号化されてデータベースに格納されていることを確認します。

ドキュメントをWebサーバーに保存しないでください。暗号化する必要がある場合は、GoogleまたはSpideroakに一度に同期します。同期が失敗すると、トランザクション全体が失敗します。

Webアプリケーションの前にWebアプリケーションファイアウォールを配置します。

プロのセキュリティ監査と侵入テストの費用を支払います。

もう何か? :-)

0
Nordic