画像掲示板の新着表示が壊れる

dtn.jpのトップページでは「画像掲示板の泉」新着投稿を表示するようしておりましたが、掲示板新着投稿データの取得がうまくできておらず、トップページのDIVレイアウトが壊れてしまっていることに気が付きました。

画像掲示板の板が真っ白に

急ぎ、女優画像掲示板を見てみると画面が真っ白になってしまっておりました。ログファイルを確認しても0Byteとなっており、ログが消失してしまったようです。

残念ながら直近のバックアップを取っておらず、取り急ぎ一カ月前のデータで復旧させました。投稿が消失してしまった方申し訳ありませんでした。

復旧させても再度真っ白に

データ復旧させたものの、不思議なことに見る間にまたログが欠損していき、一分も経つとまたログが0Byteになってしまいました。

しかも、再度復旧をさせてもまた同じような現象が発生しており、攻撃か!とも思いましたが、どうやら単にスパム連投をくらっていたようですが、投稿プログラムではログ更新時のファイルロックはかけていたので原因がよくわかりません。

PHPのfopen()でwモードの危険性

原因を調べてみたのですが、fopen($filename,”w”)のwモードだとデータが飛ぶ可能性が高いとの記載がphpspotさんで書かれているのを発見しました。

ここで注意点ですが、fopen($filename,”w”); のようにファイルを開くと、ロックをしたとしてもデータが飛ぶ可能性が高いです。
というのは “w” モードで書き込みを行おうとすると、最初にファイルサイズを0バイトにするため、flock でファイルロックを行っても、データが飛んでしまいます。

flock する場合は r+ の読み書きモードで開きましょう。

phpspot.net

fopen()のファイルアクセス形式のモード

mode説明
r読み込みのみでファイルを開く。ファイルポインタはファイルの先頭に置かれる。
r+読み込み/書き出し用にファイルを開く。 ファイルポインタはファイルの先頭に置かれる。
w書き出しのみでファイルを開く。ファイルポインタはファイルの先頭に置き、ファイルサイズをゼロにする。ファイルが存在しない場合には作成を試みる。
w+読み込み/書き出し用でファイルを開く。ファイルポインタはファイルの先頭に置き、ファイルサイズをゼロにする。ファイルが存在しない場合には作成を試みる。
a+読み込み/書き出し用でファイルを開く。ファイルポインタはファイルの終端に置き、ファイルが存在しない場合には、作成を試みる。書き込みは、常に追記となる。
fopen()のファイルオープン時の操作モード

fopen($filename,”r+”)に変更して解決

fopen()のモードをr+として、連投対策を付けたところ、無事に正常稼働をするようになりました。

dtn_top_imgbbs.png
dtn.jpトップページの画像掲示板新着投稿表示も復旧

おわりに

画像掲示板の泉はこちらからどうぞ。

img_bbs_img.png
猫の掲示板画像も復旧

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワードや人気ハッシュタグデータを月別に集計してランキング形式で公開しています。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォロー下さい。