ユーザー登録系の機能がある場合のHPを放置した末路…
WEBからユーザーを登録して○○○させよう!ってきなものを作って放置してみました!3年程度。
その後、どうなったかをみてました。
どのようなサイトにしてみたかというとWELCARTで構築したショッピングテストサイト!です。
右のような完全に作り途中?の状態のショップサイトでパスワードは設定せず公開状態でした。SEOとかは何もしていませんけど。商品も一つだけ、まあ、こんなホームページって?って思いますよね?
注文は一切入っていませんでしたが、会員登録がなんと580件もされていました。
データをみていいくとテストで作成した日付から約1年3ヶ月後から徐々にスタートしています。姓にURLが入っていたりとやりたい放題?です。
姓の部分は「BAM 50067.59p: http://xxxxxx.ru/uploads/redir.php?twje id=12456*」のような感じです。
welcartのバージョンが古いからこんなことに?って思ってバージョンアップしてみて、会員登録ができるのか試してみました。
まずは、姓に「http://~~~」って記入しましたがこれは流石に弾かれました。
次に、登録リストにあった「適当な文字列」+「http://~」にしてみまたところ、見事に会員登録ができました!
いやいや、ちょっとまずいでしょ!?
セキュリティにWAF使えっていうので使ってみたけど、「姓」の「aaa http://~~/?aa=xxx」は弾かなかった。
日本限定なら、全角文字だけOKであとはNGということでも良いのでは?ということでfunction.phpに以下を追加してみた。
function func_usces_filter_member_check($mes) { $name1 = $_POST["member"]["name1"]; $name2 = $_POST["member"]["name2"]; if (preg_match('/^[!-~]+$/', $name1) || preg_match('/^[!-~]+$/', $name2)) { $mes .= "全角で入力してください。"; } return $mes; } add_filter('usces_filter_member_check', 'func_usces_filter_member_check', 10);
この結果でどうなるのかはちょっと様子をみてみよう!
5ヶ月程度経過したけど、登録件数は0件でした。やっぱり2バイト文字対策は有効かと。