2016-10-03 6 views
-1

この質問に対する回答はかなり明白かもしれませんが、ファイルセキュリティの1つの方法が他の方法よりも優先される理由について説明したいと思います。機密情報をWebアクセス可能なディレクトリに保存していますか?

次の環境を考慮してください。

ユーザーがファイルをアップロードします。ファイルの名前はnewfile_randomstring.pngに変更されます。ファイルは、cURLを介してリモートサーバーに送信されます。リモートサーバがファイルを受信すると、新しいディレクトリが作成されたファイルは、このようなとして格納されています

のpublic_html /アップロード/ user_idの/ FILE_ID/newfile_randomstring/newfile_randomstring.png「

のは、これらが重要な文書であるとしましょう納税申告書や法律文書などの

私の質問は次のとおりです。Webアクセスできないディレクトリにファイルをアップロードすると、提案された環境よりもセキュリティが強化されますか?第二に、PHPのuniqid関数を使用してランダムな文字列からディレクトリ/ファイル名を作成する提案された方法は、最初の不要なアクセスから適切な保護を提供していますか? (たとえば、誰かがリモートサーバーのIPアドレスを把握し、ディレクトリ名や構造を推測しようとしています)。

ファイルをアップロードした直後に自動的に削除された場合はどうなりますか?ボット/ウェブスクレイパーがファイルにアクセスすることはまだ可能でしょうか?

+0

いくつかの光読書:https://en.wikipedia.org/wiki/Security_through_obscurity "Webアクセス可能なディレクトリにある機密情報を保存します?"よく狂ったバットキツです。 – nogad

+0

ファイルをWebルートの外に置くだけで、私はあなたがそれをやる気持ちを想像することはできません。 – nogad

+0

PHPの[uniqid](http://php.net/manual/en/function.uniqid.php)は、安全にランダムなものではありません。それは呼び出されたたびに返された文字列とは異なる文字列を出力することを意図していますが、それは推測が難しい文字列を出力することではなく、 **増加している整数よりもはるかに良い/異なっていない***。 – Paulpro

答えて

-1

はい、ウェブにアクセスできないディレクトリにすぐに保存してください。合理的な文書がウェブに公開されている場合は、容易にそれを取得して、ねじれおよび詐欺に使用することができます。パブリックフォルダからそれを取得すると、ハッカーは最初に情報を取得するためにシステムに侵入する必要があります。

いいえ、ランダムな文字列はまったく保護されていないため、アクセス許可が存在します。

はい、ご利用いただけますが、利用できる時間はそれほど長くはありません。

ウェブスクラッパーがサイトに侵入しようとすると考えても、ほとんどのハッキングはソーシャルエンジニアリングによって行われ、あなたが説明するシステムはすべて安全ですが、多くのバックドアが開いています。

-1

Webアクセスできないディレクトリにファイルをアップロードすると、現在の環境よりもセキュリティが強化されますか?

短い答え:はい、少ないアクセスより良い与えられます。しかし、ファイルがWebアクセスできないディレクトリにあるからといって、あなたのシステムが安全だとは言いません。私はあなたが現在やっていることについて質問していますが、私は下の方に行くつもりです。

第2に、PHPのuniqid関数を使用してランダムな文字列からディレクトリ/ファイル名を作成する現在の方法は、最初の不要なアクセスから適切な保護を提供しますか? (例えば、誰かが私のリモートサーバのIPアドレスを見つけ出し、ディレクトリ名や構造を推測しようとしています)

いいえ、ファイル名自体が隠れていると、攻撃者がファイル。これらのファイルは、少なくともパブリック・アクセス権を持たない私設ネットワーク上に保管し、ファイルにアクセスするための認証が必要であり、ユーザーがどのファイルにアクセスできるかについての認可ポリシーを持っています。チャネル(例:、TLS)、ファイルを暗号化する(クライアントの作成には、アカウント作成時に受け取った鍵でファイルを復号化する必要がありますが、ユースケースでは可能かもしれない)認証、ファイルダウンロード、認証失敗など)を含むことができる。

ファイルをアップロードした直後に自動的に削除された場合はどうなりますか?ボット/ウェブスクレイパーがファイルにアクセスすることはまだ可能でしょうか?

不要にした後で削除することはお勧めですが、それだけでは十分なセキュリティは提供されません。ボット/スクレイパーがファイルにアクセスする必要がある時間は確実に最小限に抑えられますが、ファイルにアクセスすることは可能です。あなたは間違いなくこれらの機密ファイルをパブリックディレクトリから取得したいと思っています。あなたのための

私の質問:

  1. は(つまり、あなたはcURLを介して、それらをアップロードするディレクトリ)公的にアクセス可能なこれらのファイルの最後の休憩所ですか? URLとポートを知っていれば、そのサーバーにアクセスできますか?

  2. 安全なチャンネル(TLSなど)ですべてを送信していますか?

  3. サーバーに認証が必要ですか?もしそうなら、どのように認証しますか?

  4. ファイルごとに異なるアクセスポリシーが設定されていますか。

  5. どのように衝突に対処しますか(アップロードするファイルの名前がディスク上の別のファイルと同じです)。ランダムな文字列を使用しているために何も存在しないと仮定しますか?

  6. なぜファイルを送信しているサーバーがファイルの名前を付けていますか?これは、あなたが対処したくないさまざまな攻撃につながります。

  7. アップロードするファイル(およびそのメタデータ)に対して入力衛生措置はありますか?少なくとも、それは特定のサイズの制限を超えていないことを確認していますか?

  8. これらのファイルは、アップロードされた後にどのように使用され、どのようにアクセスされますか?

  9. ここでは、ランダムに生成された名前とそれがマップされている場所を把握していますか?

  10. ファイルの内容をアップロードするすべてのディレクトリのアクセス許可の設定は何ですか?

これらの質問に答えると、さらに質問があります。

EDIT:追加されました別の質問

+0

)1.はい。 2.)いいえ3.)はい。 RSA鍵認証。 4.)ユーザーはリモートサーバーに直接アクセスすることはできません。発信元サーバーで訪問したページだけが、リモートサーバーから発信元サーバーにファイルを送信するよう要求できます。 5.)各ユーザと各アップロードは、MySQL DB内の一意のプライマリキーに基づいて一意のIDを持ちます。 6.)一度に複数のファイルをアップロードする必要があります。これを回避する方法は不明です。 7.)はい、MIMEの種類を確認してファイルサイズとファイルの種類。 8.)サイトに登録したユーザーのみ。 9.)ファイル名は、ユーザIDとファイルIDとともにMySQLテーブルに保存されます。 – faceymcface

+0

10.受信cURL操作のファイル:775.ファイルとサブディレクトリは755です。 – faceymcface

関連する問題