一日PC仕事

例のPHP問題。ウチも当然利用しているので朝から対応策を検討した。
今PHPなしで作られるサイトってあるのだろうか、あるとしたら何で作っているんだろう? と思うくらいポピュラーなんじゃないだろうかPHP。HTMLだけで作っていた30年とか昔は、1つ1つのページを1から10まで全部記述していた。自分のサイトで言えば、トップページ、商品紹介ページ、各商品ページ、と、もしもページ数が300あるなら、300を1から10まで書かないといけなかった。PHPは、どこかに1つファイルを作って、それを「呼んでくる」というシステム。自分のサイトであれば、ヘッダー、サイドバー、フッター、全部PHPファイルが1つあって、それをすべてのページから呼びに行ってます。そういう神のようなシステムです。
と、私はそのように認識しているんだけど、ぜんぜん違ったりしてな!

その脆弱性……、となると、さっぱりわからないのだが、とにかく何かしないわけにはいかない。というわけで、一日中、自分のサイトの管理ページ、サーバーの管理ページ、FTPソフトでサーバーの中を覗く、そしてAIにお伺いを立てる、という4本立てをやって、たぶん大丈夫ということはわかった。ウチは普通にボットに攻撃はされていたけど、侵入されてはいないし、何かを置かれたこともない。たぶん大丈夫。

でも何か不安なので、もう秋も深まってまいりましたので、一旦ネットから遮断するという結論に至りました。これがいちばん安全なので。ウチから漏洩する情報は殆どないけど、例えばウチが侵入されたらそこから別のもっと先(どこ?)へと行ってしまう(?)的なことを見聞きするから。早く収束するとよいです。
夕方、Xを見たらみゆきさんの公式サイトもメンテナンスになったそうだ。

自分がサーバーを借りて自前の店を持つことの危険性を、今回ほど具体的に感じたことはないように思う。ずっと不安は持っていたが、それが具体化したことはなかった、今回が初めてだと思う。そんなわけで、そろそろ潮時なのかもしれないということも含め、長い冬休みに入ろうと思う。
今回はデータベースは関係なかったから探りに行っていないけれど、こんな風にあっちもこっちもとなった時に、データベースも見なきゃならないとなるととても大変だ。いつまで対応できるのか、まぁAIが一応ああしろこうしろと言ってはくれるけど……。

今日は最高気温15.6℃と発表されているが、昼前くらいに自宅の壁(その時点では日が当たらない場所)につけている温度計は19.5℃くらいだったんだよね。観測点とわが家とでそんなに違うことがあるのかなぁと不思議に思いつつ。
明日は1℃の予報。
ではまた

PHP問題対応

世界中で問題になっているPHPの脆弱性問題。
ウチにも当然関係があって、対処したので記録しておく。

最初はPHPの修正パッチが既に当てられていることを確認したので、これでよいかと思った。
が、そう簡単な話でもなさそうで、サーバーのアクセスログを確認したところ、連日ではないもののたまに大量のアクセスがあったことが判明。
(ただしこれは今回のPHP問題とはたぶん別)
このアクセスが何かと言うと、ボットによるログイン攻撃だった。1分間に数十回が数分続く。しばらくしてまた始まる、というような感じ。
ただ相手はボットなので、パスワードともう一つ噛ませている画像を読ませるものの2つを突破されたことはない。
FTPソフトでサーバーを見に行き、全体を見て不審なPHPファイルが置かれていないか確認した。

突破はされていないものの、こんなに攻撃されているとしたら怖いので、店のWPに入るログインパスワードを強固なものに変更した。ユーザー名は変更できない、既にばれている。
忘れず本社の方もやらないと。 ← やった。
それから、危険かもしれない不要なプラグインを削除した。
古いバックアップの一部が残っていたのも削除した。

これで終わってもよかったのだが、例年だと来月には冬季休業に入る、今年はそもそもがほぼ稼働させていないので、思い切って一時的に遮断する処置を行った。

.httaccess  書き換えた。503エラーを新たに作った.htmlに向けた。
尚且つ、自分だけは見られる状態にするよう書き換えを行った。
再開する時はこれをもとの状態に戻す。詳細はClaudeの「PHPの脆弱性対応で~」の項目にある。

新たに書いたHTMLは、maintenance.html
今休んでいますよー、というだけの文字だけ版。

これでアップロードしたら500エラーになって焦った。原因は.httaccessの文字コード。わざわざUTF-8にしたのだが、それが間違いでUTF-8Nが正解だった。BOMなしが後者。
同じものを本社にもアップして、どちらもスマホからWI-FIを切ってみると「休業中」になることを確認した。

店を置いたままにすると、「休み中だから注文しないでください」と書いておいても気付かず注文が入ることがあるので、完全に見られないようにしてしまった。

うちみたいな小さい店、攻撃したってしょうがないだろうと思うのだが、相手は人ではなくロボットだから、規模の大小関係なくとにかくやってくるようだ。

それと、現在PHP8.2の最新版。今年で8.2の対応が終わるようなので、年内に8.3かそれより新しいものに上げること。これ鬼門だけどね。

以上、対応メモ。

その後、FTPソフトを見ていて気になったバックアップの整理をした。ちゃんととれたバックアップは.zipで、本社は3つ、本店は11個に分かれている。これで1日分。サーバーには3日分ずつ保存されている(指定どおり)。過去のものは消えていく。ただし、失敗したものが.partというファイルになってかなりの数残っていた。これを全て削除。
また、最新と前日の2日分をローカルに転送して保存、古いものを削除。

時々はFTPつないでサーバー側のチェックもしないといかんなと思った。