HTML の FORM textarea についての質問です。textarea は、HTML的には、入力制限がないようですので、POST データとして大量のデータ送られる可能性があります。受け取ったプログラム(PHPのスクリプト)が対応できないほど大量にデータをおくることによってサーバを攻撃することはできるのでしょうか? Dos 攻撃の一種ともいえます。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/07/05 19:03:06
  • 終了:2007/07/12 19:05:03

回答(3件)

id:inokuni No.1

いのくに回答回数1343ベストアンサー獲得回数212007/07/05 19:18:11

ポイント27pt

post_max_size で POSTデータに許可される最大サイズを PHP 側で制限することができます。


もし制限したい場合は PHP_INI_PERDIR なので php.ini か .htaccess または httpd.conf に記述することになります。


http://jp.php.net/ini.core

post_max_size integer 

POSTデータに許可される最大サイズを設定します。この設定は、ファ イルアップロードにも影響します。大きなファイルをアップロード するには、この値を upload_max_filesize より大きく設定する必要があります。 

configureスクリプトでメモリ制限を有効とした場合、memory_limitも ファイルアップロードに影響します。一般的に memory_limit は、 post_max_sizeよりも大きく する必要があります。 

integerを使用する際、その値はバイト単位で測られます。 この FAQ に記載された短縮表記を使用することも可能です。

POSTデータの大きさが、post_max_sizeより大きい場合、 $_POST と $_FILES superglobals は空になります。この事象は、いくつかの方法で検出することができます。 例えば、$_GET 変数をデータを <form action="edit.php?processed=1">のように 処理するスクリプトに渡し、 $_GET['processed'] が設定されているかどうかを 確認する方法があります。 
id:isogaya

なるほど、ファイルアップロードの機能も制限されるのですね。

2007/07/05 20:28:21
id:Marin_MTB No.2

Marin_MTB回答回数40ベストアンサー獲得回数52007/07/05 19:57:08

ポイント27pt

理論的には可能ですが、大概はPHPなどAPサーバがPOSTデータサイズの制限や変数バッファの制限などでブロックしています。

例えばphp.iniのpost_max_sizeなどです。

これがブロックされないと、メモリを大量に消費してサーバをが落ちてしまったり、PHPのPOST入力バッファを越える容量だった場合、いわゆるバッファオーバフローという攻撃にもなり得ます。

id:isogaya

ファイルアップロードは制限したくないのですが、textarea に対するアップによるメモリ消費は防ぎたいのです。

2007/07/05 20:47:46
id:stoned247 No.3

stoned247回答回数9ベストアンサー獲得回数02007/07/06 02:29:40

ポイント26pt

>>ファイルアップロードは制限したくないのですが、textarea に対するアップによるメモリ消費は防ぎたいのです。

送信時にjavascriptでの文字数チェックを入れてあげれば良いのではないでしょうか?

offにされているとチェックされないので気をつけてください。

submitもjavascriptで制御すればoffの場合は、送信処理が

行えなくなるので有効なのではないでしょうか?

POSTデータを受け取る前にチェックを入れるとするとjavascriptでの

制御くらいしか思いつかないですね。。。


http://www.dummy.com/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません