このタイプの脆弱性は主に、ユーザーが渡したパス名を読み取り、誤ったフィルタリング方法を使用することで、悪意のあるユーザーがファイルを予期しない場所に保存し、セキュリティ上のリスクを引き起こす可能性があります。
実際、ユーザーはファイルを保存したいと考えており、ファイルの内容によってはユーザーの入力形式と一致しない可能性があるため、最初に分析する必要があります。内容はユーザーの入力形式と一致していない可能性があります。トロイの木馬コードが含まれています。 次に、ユーザーがファイルを保存し、サイト ファイルとは別に認証して、分離を実装できるようにします。
保存ディレクトリと保存ディレクトリを独立させます。ディレクトリの権限は読み取り専用であり、実行できません。
このステップはシステム設計により許可されており、前回どのファイルを使用していても実行されません。たとえテストを行わなかったとしても、すべてのファイルがここに保存されていれば、システムにセキュリティ上のリスクが生じることはありません。 (ユーザーが保存した反動的な言葉を含む画像がある場合は、別途対処する必要があります)
サーバーの受信値を直接使用しないでください。すべて検出する必要があります
このタイプは、クライアントによって渡されたすべての入力は有害であるという原則と同じであり、それらは判断され、直接使用されません。特定のディレクトリと特定のファイル名が生成される場合。
ファイル名を使用する最善の方法は、ディレクトリを自分で書き込むことです (受信ディレクトリを読み取らないでください)。ユーザーのファイル名を読み取らずに自分でファイル名をランダムに生成するのが最善です。ファイル拡張子は、右端の「.」に続く文字です。
上記の 2 つの方法は、2 つの側面からストレージに全体的な制約を課すだけです。
方法 2: ファイル名を保存し、指定したディレクトリに書き込みます。ファイル名は自分で生成されます。
方法 1: ファイルが正しい場所に書き込まれていることを確認してから、書き込みディレクトリにアクセス許可制御を構成します。これが根本的な原因です。どのようなファイルを保存しても、それを実行する権限はありません。
上記の 2 つの方法を併用すると、ファイルが正しい場所に保存され、アクセス許可を制御できるようになります。 ちなみに、ユーザーが保存したファイルが必要な形式を満たしているかどうかは、ファイルの拡張子を直接チェックして、拡張子が満たされていれば保存が許可されます。 とにかく、実行許可制限が設けられているので、必要に応じてコンテンツをアップロードしなくても問題ありません。 いずれにせよ、実装できなくてもそれほど害はありません。
正しい手順:
1. ファイル名を読み取り、拡張子が範囲内であるかどうかを確認します
2. 生成されるファイル名、ディレクトリ、拡張子を自分で定義します。拡張子はファイル名拡張子から取得できます。 他のすべての値は自分で設定し、上位メモリの内容は読み取られません
3. ファイルを新しいディレクトリに移動します (このディレクトリのアクセス許可は読み取り専用に設定されています)
さて、以上が一般的な操作方法です。友達同士のコミュニケーションも大歓迎です。また、より良い方法を提供したいと思っています。次に、Web 開発におけるいくつかの一般的な手法の機能安全設計に関する私の経験と意見を書き続けます。