.htaccess を使用して、ファイルの種類に基づいて php ファイルのアップロード サイズ制限を制限することは可能ですか?
たとえば、画像の最大アップロード制限は 2 MB で、PDF と DOC の最大アップロード制限は 10 MB です。
これにはLimitRequestBodyディレクティブを使用します。ただし、引用するには:
メソッドの実装には、
PUT
少なくともサーバーがそのリソースに対して受け入れたい表現と同じ大きさの値が必要です。
これを 10Mb に設定して、明らかに大きすぎるリクエストを Apache に遮断させ、スクリプト内でさらにテストしてフィルタリングすることができます。このディレクティブは、主にサービス拒否攻撃を防ぐために使用されます。このディレクティブがないと、スクリプトに到達する前に Apache が喜んでファイル全体を受け入れるため、ユーザーは 100Gb ファイルが長すぎると言われる前にアップロードすることができます。
ただし、このディレクティブはリクエストの本文を覗き見しないため、ファイルの種類でフィルタリングすることはできません。
サイズ制限と許可されるセットの種類を変更することはできますが、この 2 つに参加できるとは思えません。
DOS 攻撃からサーバーを保護する方法の 1 つは、ファイル アップロードの最大許容サイズを制限することです。ここでは、ファイルのアップロード サイズを 10240000 バイトに制限しています。これは約 10 メガバイトに相当します。このルールでは、ファイル サイズはバイト単位で表されます。注: このコードは、ユーザーがサイトにファイルをアップロードすることを実際に許可する場合にのみ役立ちます。
LimitRequestBody 10240000