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

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・ニコニコ動画・Tiktokの貼り付けが可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitterトレンドワード・人気ハッシュタグデータを、月別に集計してランキング形式で公開しています。年間トレンドワードも公開中。
  • Keyword Tool++Yahooショッピングや楽天のトレンドワードデータを日次収集し、EC系の人気キーワードをラインキング形式でご紹介しています。各ワードの検索ボリュームや関連語、24か月の検索ボリュームをグラフで確認が可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能です。
  • TrendinGファッションブランドを人気アイテムヒット率でランキング化し、一覧でご紹介しているサイトです。

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

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