2011-05-01 4 views
1

HTMLを使用してユーザーフォームでこれを行う方法を知っています。しかし、悪意のあるユーザーはそのフォームに合格してサーバーアクションページを呼び出し、異常に大きなサイズのテキストを送信することができます。PHPを使用してサーバーに送信できるテキストの長さを制限する

このような要求はサーバーから拒否されますか。おそらく、巨大ファイルのアップロードと同様に、実際に到着する前に到着しているPOSTデータのサイズを事前に認識できる仕組みがあります。

答えて

2

php.iniファイルを編集し、最大ポストサイズを許可するメガバイト数に設定します。長いブログ投稿には十分高いと思われますが、それは必要ありません。あなたは、彼らはそれでも到達する前に、要求をブロックすることができますので、あなたはまた、サーバ設定で最大要求サイズを設定することができますApacheやNginxはを使用している場合は、チェックする必要があり

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 

をしています
php。

+0

ああ、PHP.iniファイルです。それはそのような情報を持っている必要があります:)。さらに注意すると、サーバーは大量のテキストを受信する前に要求を実際に拒否するでしょうか? –

1

Suhosinを使用できます。 PHPの保護システムです。設定の中で、特定の長さのリクエストを禁止することができます。

+0

リンクを送信していただきありがとうございます。このプロジェクトは、この問題やその他のセキュリティ要件に役立ちます。 –

0

PHPがPOSTデータを処理するまでには少し遅れています。これは、Webサーバーレベルでの方が優れています。 Apacheを使用している場合は、LimitRequestBodyディレクティブを参照してください。

関連する問題