コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2014年3月14日 >>> 2014年3月1日
link もっと後

2014年3月14日

日記システムがまたコメントスパムにやられた

目次: 自宅サーバー

以前、コメントが書き込めなくなって(2014年1月7日の日記参照)しまい、応急処置で切り抜けましたが2か月経たないうちに再発しました。年単位ならまだしも1〜2か月で再発するようじゃ、もう駄目だろということで真面目に調査開始しました。

原因

白いページが出る原因は、PHPプロセスのクラッシュによるものでした。具体的には、コメントの承認待ちデータの肥大化により、承認待ちデータをロードした際にPHPスクリプトを実行するプロセスがクラッシュして、何も応答を返せなかったためです。大体50MB overくらいで発生するようです。

また、コメントの承認待ちデータが肥大する原因は、この日記システムの設計が悪かったためです。コメントの承認待ちデータは下記の仕組みで、追加、および、削除が行われていました。

  • コメントを送信する
  • コメントの承認待ちデータの最後尾に「追記」
  • コメント書き込み内容を承認(「上記、確かに認めます」のチェックを付けて「送信」することを指す)
  • コメントの承認待ちデータを全て「ロード」して、時間切れのモノを「削除」

設計の大きなミスとしてコメントを承認しないと、コメントの承認待ちデータを削除する処理が絶対に動作しない点です。コメントを承認しない限り、コメントの承認待ちデータが際限なく追記されてしまいます。

対策

対策として、コメントの承認待ちデータを「追記」する際に、同時に時間切れのモノを「削除」する処理を追加しました。これにより、時間切れと判定する時間内(現在は300秒)に、50MB分のスパムを送りつけられない限り、今回の問題は発生しないはずです。

承認待ちデータの大きさは、名前+コメント+約600バイトです。だいぶ長いスパムでも、せいぜい数KB程度なので、33回/秒の勢いで300秒間連続で投稿されない限り、パンクは免れるはずです。

残課題

ただし、今は名前やコメントに長さの制限がないため、50MB超のコメントを送信されると、一撃でコメントが書き込めなくなります。

やられたらそのときまた考えますけど、できればやらんで欲しいですな…。

編集者:すずき(2024/01/13 17:00)

コメント一覧

  • IKeJIさん(2014/03/17 14:39)
    ロードして、ゴニョゴニョして、書き戻すと、途中で死んだ時に消えませんか?
    読みながら別ファイルに書いて、リネームの法が良さそうな。
  • すずきさん(2014/03/17 21:44)
    >IKeJI さん
    今は、ファイルから全部メモリに読んで、加工が全部終わったら、メモリから一気にファイルに書いているので、ファイルに書いている途中で死ぬと全損ですね。
    リネームの方が良さそうですね。同時にリネームが走ると悲劇が起きそうなので、ロック用のダミーファイルが要るかな。

    問題は、既に PHP をだいぶ忘れていることですね。過去の自分は他人だ…。
open/close この記事にコメントする



2014年3月9日

スゴイと思う人

1人で問題を解決する奴は、スゴイと思う。

1人じゃ無理だけど周りに呼びかけて解決まで導く奴は、偉いと思う。

問題を指摘するだけで逃げる奴は、居ても居なくても良いと思う。

「何だアイツ熱くなって…」ってバカにして何もしない奴らは、居ない方が良いと思う。

メモ: 技術系?の話はFacebookから転記しておくことにした。

編集者:すずき(2014/04/21 02:01)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月8日

アクセス解析

日記表示の際のアクセス解析をやめました。カウンターを表示しないブラウザ、Web Botなどからのアクセスはカウントしなくなります。

最近見つかる未知のエージェントは、従来ブラウザのバージョンアップ物か、人間からのアクセスではなかろうBotやクローラばかりで、そんなもん分類してもつまらんのですよ。

編集者:すずき(2014/03/09 01:13)

コメント一覧

  • すずきさん(2014/03/21 00:31)
    メモ: IE11(Trident 7) と iPod touch と Nintendo 3DS と PhantomJS 対応。
open/close この記事にコメントする



2014年3月7日

メモ

任天堂と、はてなと、アマゾンAWS。

AWS導入事例: 任天堂株式会社

メモ: 技術系の話はFacebookから転記しておくことにした。

編集者:すずき(2015/11/29 20:29)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月4日

一歩先行くRaspberry

2歳となったRaspberry Piの販売台数は250万台超。さらなるオープン化にむけた1万ドルコンテストを開催

Raspberry PiのSoCと同じグラフィクスコアのドライバーがオープンソースになったみたいです。

そのうちRaspberry Piでも完全オープンのドライバが動くようになるんだろうなあ。さすがだな…。

メモ: 技術系?の話はFacebookから転記しておくことにした。

編集者:すずき(2014/03/17 01:05)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月3日

AQUOS PHONE ZETA SH-01F

AQUOS PHONE ZETA(SH-01F) は「余裕で3日使えるスマホ」という宣伝文句でしたが、我が家のSH-01Fは1日以上稼働したことがありません。アプリの履歴を消し忘れるとまず1日持たないし、消していても「メディアサーバ」さんが、電池を50%近く消費してくれたりして、結局電池が持ちません。

消し忘れたアプリや、メディアサーバさんが頑張ってると思しきときは、スマホの上部がかなり熱くなります。冬でも相当熱くなるので、夏ともなればスマホが熱でぶっ壊れるんじゃないか?と嫌な気分になります。うーん、何でだろうな…。

編集者:すずき(2014/03/05 02:49)

コメント一覧

  • すずきさん(2014/03/24 08:10)
    後日談。

    ゲームとか負荷のかかることを控えて、メディアサーバが出張ってこなければ、3日目に突入できました。
    うーむ、メディアサーバとは一体…?
open/close この記事にコメントする



link もっと前
2014年3月14日 >>> 2014年3月1日
link もっと後

管理用メニュー

link 記事を新規作成

<2014>
<<<03>>>
------1
2345678
9101112131415
16171819202122
23242526272829
3031-----

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事3件

  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 22年7月8日
    すずき (11/02 20:34)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/04 15:17