勉強を兼ねて久しぶりにネットショップの変更を行おうとした。
EC-CUBEの管理画面からログインして、デザイン管理の機能でTOPページのPHPプログラムの部分を修正、保存しようとしたら、サーバーエラーが表示された。
レンタルサーバーから拒否されたようだ。
日を改めて何度試してみても同じ。
この数日原因不明で悩んでいた。
他の機能。商品登録やレイアウト変更などは問題なく利用できている。
サーバーエラーのメッセージを確認してみると、POSTメソッドでPHPプログラムを実行しているのを拒否しているようだ。
となると当該プログラムに実行権限がないとか、レンタルサーバーのセキュリティ制限に引っ掛かっている可能性が高い。
管理画面の登録更新機能は全てPHPプログラムで作成されているはずで、他の機能は正常動作しているので実行権限の問題ではないと推測した。
レンタルサーバーの管理画面にログインしてアクセスログなどを確認した。
すると、WebアプリケーションファイアーウォールのログにSQLインジェクションのブロックのログがあった。
エラーメッセージで表示されたPHPプログラムで、実行した時間も同じだった。
新しく追加されたこのセキュリティ機能を、去年の12月に設定したのを思い出した。
Webアプリケーションファイアーウォールとは、簡単に言うと、パラメータ付きでUNIXコマンドやSQL命令を実行するようなアクセスを外部からすることでファイルやデータベースの参照や更新・削除をするハッキングを、ブロックする機能だ。
昔、ログイン画面でSQL文(データベース操作言語)を入力して実行すると、IDとパスワードが一覧表示されてしまう単純なハッキングがあった。
ログイン画面で入力された文字列をそのままデータベースに送信するプログラムを書いていたために起きたセキュリティホールだ。(今はもう対応済みだと思うが)
ネットショップは個人情報を扱うため、セキュリティをかけておかなければならない。
手間ではあるが、EC-CUBEのテンプレートをダウンロードしてPHPプログラムを修正したものを再度アップロードして対応するしかない。
本当にセキュリティを維持するのは大変だ。