«前の日記(2007-02-15) 最新 次の日記(2007-02-18)» 編集

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2007-02-17 [長年日記]

_ [近況] pukiwiki の編集と KDDI au の textarea サイズ制限

このサイトで使ってる pukiwiki のある記事の後半がカットされていたので,アクセスログを見てみたら,ezweb.ne.jp からの POST を発見しました.以下は,URL の一部とホスト名をカットしてます.

.ezweb.ne.jp - - [17/Feb/2007:12:47:17 +0900] 
  "GET /aosdwiki/index.php?cmd=edit&page=%B2%A3%... HTTP/1.1" 
  200 5648 "http://ezsch.ezweb.ne.jp/search/?sr=0101&query=..." 
  "KDDI-SN36 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0"
.ezweb.ne.jp - - [17/Feb/2007:12:47:22 +0900] 
  "POST /aosdwiki/index.php HTTP/1.1" 302 5 
  "http://netail.net/aosdwiki/index.php?cmd=edit&page=%B2%A3%..."
  "KDDI-SN36 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0"
.ezweb.ne.jp - - [17/Feb/2007:12:47:25 +0900] 
  "POST /aosdwiki/index.php HTTP/1.1" 200 5449 
  "http://netail.net/aosdwiki/index.php?cmd=edit&page=%B2%A3%..."
  "KDDI-SN36 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0"

POST のサイズ制限でもあるのかと思って調べていたら,ezweb からの書き込みで wiki ページの一部削除が起こるという問題はやはり他のところでも起こっていたようです.

携帯用ブラウザでページがどう見えるかのテストを行うOpenWave SDKを使ってみたら,textarea の中身が 1048 バイト(SJIS としてカウントしたとき)でカットされてしまうことが確認できました.POST の制限ではなく,HTML を携帯に表示する途中のどこかでの制限のようです.

編集フォームを含めて 9KB 超えている場合は,pukiwiki 側の回避策によって,Too large ... とかメッセージが出て編集できませんが,ページサイズがフォームを含めて 6KB 程度に収まっていて,かつ textarea の中身が 1048 バイトを超えてるページについては,この回避策が働かず,現時点では危険のようです.たぶん,フォームの中身が1〜3KB程度の文章が該当します.

ただ,この 1048 という数値は,KDDI のページの form 変換などの記述には載っていなくて,携帯上で HTML を表示するまでのどの段階でかかっているのか分かりません.また,数値自体もいつ変わるか分からないので,pukiwiki 側で回避できるのかどうかは謎です.

この問題については,ログの編集ページに到着から投稿まで5秒というのを見ていて思ったんですが,

  1. 検索からいきなり編集用ページに到着する.
  2. ページ内には「Top / New / Edit / Menu / Recent」と フォーム,「プレビュー」「ページの更新」ボタンぐらいしかない.
  3. ページの中身を読みたいので「ページの更新」を押す.
  4. 短くカットされたフォームの中身を投稿してしまう.

…という動作をユーザがやってるのではないかという気がしました.編集ページから元のページへ戻るというリンクは存在しませんから.あくまで推測ですが.

追記: 検索で編集用ページに飛び込んでくるのを防ぐために,cmd=edit が与えられたリクエストのリファラが外部サイトだったら cmd=edit のないページに移動するようにしてみました.

RewriteCond     %{HTTP_REFERER} !netail.net/aosdwiki/.*
RewriteCond     %{QUERY_STRING} cmd=edit&page=(.+) 
RewriteRule     index\.php      index.php?%1 [R,L,NE]
お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: