dポイントプレゼントキャンペーン実施中!

送信フォームをPHPにて作成しましたが、エラーログに「request failed: URI too long」が時々表示され困っております。
このエラーログ発生の回避方法がございましたらご教授お願いします。

レンタルサーバー情報
OS:FreeBSD 4.8-RELEASE-p13
httpd:Apache/1.3.27 Ben-SSL/1.48 (Unix)
PHP:4.3.6 / 4.2.4-dev / 3.0.18-i18n-ja-3

A 回答 (1件)

このエラーはいろいろな原因があります。



(1) access_log にとんでもない長さのアクセスログがある場合。

***.***.***.*** - - [11/Apr/2004:10:49:22 +0900] SEARCH /\x90\x02
\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02
\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02
\xb1\x02\xb1\x02\xb1\x02\・・・・・

これは、トレンドマイクロ社ではWORM_AGOBOT.PY、
シマンテック社では、W32.HLLW.Gaobot.gen と言われている、
Microsoft IISのWebDAVの脆弱性を突きに来るワームによるアクセスが原因です。

(2) GETメソッドの制限

GETメソッドではデータの長さが制限されています。
どれだけの長さまで許されるかは OS や WWW ブラウザなどの環境に依存します。
apache1系では URL部分も含めて 8190 バイトを越えると 414 Request-URI Too Large となるはずです。
日本語1文字2バイト、URLエンコードして6バイトなので、 1300文字程度しか書けません。
一行80文字でたった17行です。
また、UNIX では環境変数に代入できるデータの長さも制限があります。

GETを使っているのであれば、POSTメソッドを使ってみてはいかがでしょう?

この回答への補足

ご対応ありがとうございます。

(1)ワームアクセスの場合は、受信できない現状維持が宜しいのでしょうか?
(ワームアクセスがどの様な結果になるのか知らないので、変な質問ですみません)

(2)下記のロジックで「get」は使用してないのです。

送信フォーム
<form method="post" ENCTYPE="multipart/form-data" action="cgi-bin/send.cgi" id=form1 name=form1>

php
$name =$_POST['name'];

補足日時:2004/07/18 14:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!