HTMLを使用してユーザーフォームでこれを行う方法を知っています。ただし、悪意のあるユーザーは、そのフォームを通過してサーバー アクション ページを呼び出し、異常に大きなサイズのテキストを送信することができます。
サーバーからのそのようなリクエストを拒否する方法はありますか。おそらく、巨大なファイルのアップロードと同様に、実際に到着する前に、到着する POST データのサイズを事前に認識できるメカニズムが存在します。
HTMLを使用してユーザーフォームでこれを行う方法を知っています。ただし、悪意のあるユーザーは、そのフォームを通過してサーバー アクション ページを呼び出し、異常に大きなサイズのテキストを送信することができます。
サーバーからのそのようなリクエストを拒否する方法はありますか。おそらく、巨大なファイルのアップロードと同様に、実際に到着する前に、到着する POST データのサイズを事前に認識できるメカニズムが存在します。
ファイルを編集しphp.ini
、最大投稿サイズを許可するメガバイト単位の数値に設定します。長いブログ記事などには十分な高さが必要であることを覚えておいてください.
post_max_size = 4M
確認する必要があるその他の設定は次のとおりです。
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time = 60
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 30MB
Apache または Nginx を使用している場合は、サーバー構成で最大要求サイズを設定して、 phpに到達する前に要求をブロックすることもできます。
スホシンが使えます。PHP の保護システムです。また、設定の中で、一定の長さ以上のリクエストを禁止することができます。
PHP が POST データを処理する頃には、少し遅れています。これは、Web サーバー レベルで行う方が適切です。Apache を使用している場合は、LimitRequestBodyディレクティブを確認してください。