画像認証で正解を入力しても失敗する問題

うちのWordPressで使っているキャプチャ(画像認証)で、特定のChrome、IE環境でのみ正解の文字を入れても「文字が違う」と出ていた問題を修正してみることに。
 
自分の環境では再現しないので、まずキャプチャのログを見てどうなっているか確認してみる。
 codeが正解の文字、code_missが入力内容、successが成功かどうか1=成功 0=失敗。
キャプチャログ
うん、確かに同じ文字なのにsuccess=0で失敗となっています。

PHP側は文字の比較に===を指定しているので考えられるのはPHP側で文字コードのデコードミス。
だけれど強制的にUTF-8へエンコードしているので問題は無いはず。
 
そこで送信側のエンコードかなーと思ってajax処理部分のjavascriptを見てみる。

function rc_getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}
 
...略...
 
kCaptcha.receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
kCaptcha.receiveReq.setRequestHeader("Content-length", param.length);
kCaptcha.receiveReq.setRequestHeader("Connection", "close");
kCaptcha.receiveReq.send(param);

と言うことで、自力でPOSTしていました。
 
自力でガリゴリやっているし環境によっては何か不具合がありそうw
なにより色々スマートじゃないのでjQueryで作り直してみることにしました。
キャプチャ JavaScript作り直し
結果はjsのファイルサイズが約7kbから約4kbまで小さくなりましたー!
今まであんまりjQueryを使ったことがなかったけれど・・いやコレ便利だわー

jQueryにかえたお陰で以前からあった「認証」ボタンを押しても反応しない謎の問題も解決。
送信側の問題であれば多分解決しているハズ・・・
 
序でにPHP側のテキトーに作った画像処理部分も最適化してみる。
キャプチャ PHP側更新
これで若干だけど画像生成の速度が上がって、画像を更新した時とかのレスポンスも向上しました(`・ω・)b

序でにアルファチャンネルの合成にも対応したので、こんな感じの画像を生成する事もできるように!
[左:テスト中の画像、 右:今までの]
キャプチャ 新画像 キャプチャ 旧画像
新しい方法だと「背景<文字<半透明層」や「背景<文字<半透明層<文字<半透明層」って感じで重ねているので今までのような簡単な画像だけじゃなくて、αCHを含んだ模様付きの画像を作れば人が見やすくロボットが見にくい画像が簡単に作れる。
 
問題が解決しているといいなあー

フェネックでフィールド移動。

最近は20~22時ぐらいに寝ちゃって全然ゲームをやってないんですよー
ゲームを思いっきり遊びたい!...けど眠気でダメw
 
そんな中、SkyrimのENBの設定を弄って遊んでイイカンジに纏まったので負荷テストを兼ねたフィールド移動テストをやってみました。
ホワイトラン~リフテンまでの道中にいる害獣/虫を駆除しながら行く感じ。

後半はかなり暗くなっちゃったかなー、夜の設定をもうチョット変更したほうがよさそう。
 
・・・だけれど、ENBプリセットを変えてからCTD確率が増えた気がする。
メモリはSKSEで最大限拡張してるし「グラボを積むしかないかなー」と思ってボーっとenblocal.iniの設定を見ていたら閃きが!
今の環境は、少し前に書いたENBのメモリ管理関係の記事でExpandSystemMemoryX64をfalseにしてあるのですが、これをtrueにしてSKSEのメモリ拡張機能を無効にしたらどうだろうか?

と言うことで、試してみたところCTDが殆ど発生しなくなりました。
Skyrim - ENBメモリ拡張 1 Skyrim - ENBメモリ拡張 2
入れるとCTD発生確率が高かったSkyrim Flora Overhaulを入れてフィールドを走り回ってもCTDがカナーーリ軽減されました。
αバージョンのSKSEよりENBの方を使った方が安定するみたい。
 
これを入れてから録画したらよかった・・・_| ̄|○
 

メールアドレス販売をする業者

今日1通のスパムメールが届いていました。
内容は今までとは違い、高額アルバイト募集のもの。

件名: 『緊急告知』1日最低3万円稼げるパチンコ・スロット派遣スタッフ募集

☆緊急募集☆
前回の募集の際は、限定10名様だけに限らせて頂きました。
今回、店舗数が拡大に増えたため再度緊急募集をさせて頂きます。

応募はこちらから↓
http://...

前回1万人以上の方々が応募して下さいました当サイトは、あまりの応募人数にご当選通知メールをするまでにお時間がかかってしまいました。
ですので、今回はこちらからメールが届いた方のみとさせて頂きます。
尚、こちらからメールが届いた方に関しましては、無料ご登録さえして頂けたら【1日最低3万円稼げるパチンコ・スロット派遣スタッフ】としてこちらからご連絡させて頂きます。

応募はこちらから↓
http://...
Return-Path: <pk@bz3tya3w294mw2zp.info>
Received: from 103-15-76-178.dead-square.info([103.15.76.178])
 by localhost([127.0.0.1])
 with ESMTP for <...@wolfs.jp>;
 Mon, 12 May 2014 15:33:59 +0900 (Asia/Tokyo)
Received: from StructureCampus (StructureCampus [127.0.0.1])
 by pressurepill(2.13.0.4a.1)
 with SMTP;
 Mon,12 May 2014 13:34:23 +0900 (JST)
Received: from area-archaeology (area-archaeology [127.0.0.1])
 by LightScience83 (Postfix)
 with ESMTP id H5AH0Q1RZW4 for <...@wolfs.jp>;
 Mon, 12 May 2014 13:34:23 +0900 (JST)
From: 【打ち子】パチンコ・スロット派遣スタッフ募集 <pk@bz3tya3w294mw2zp.info>
To: ...@wolfs.jp
Content-Type: text/plain; charset="ISO-2022-JP"
Subject: 『緊急告知』1日最低3万円稼げるパチンコ・スロット派遣スタッフ募集
Date: Mon, 12 May 2014 14:20:00 +0900 (JST)
Message-ID: <1399869263.1.004E3560@pressurepill>

こんなメールに引っかかる人がいるのか・・と思うぐらい見え見えですねー

送信元サーバーは103.15.76.178で逆引きすると103-15-76-178.dead-square.infoでした。
IPをRIRに照会して得た情報は・・・

% [whois.apnic.net]
% Whois data copyright terms http://www.apnic.net/db/dbcopyright.html
% Information related to '103.15.76.0 - 103.15.77.255'
inetnum: 103.15.76.0 - 103.15.77.255
netname: SNIJ-NET
descr: SNIJ-NET
country: JP
admin-c: SM1405-AP
tech-c: SM1405-AP
status: ASSIGNED NON-PORTABLE
remarks: For SPAM/ABUSE Issue:abuse@yucc-a.biz
mnt-by: MAINT-YUCCA-NET-JP
mnt-lower: MAINT-YUCCA-NET-JP
mnt-routes: MAINT-YUCCA-NET-JP
mnt-irt: IRT-YUCCA-NET-JP
changed: support@yucc-a.biz 20120828
source: APNIC
irt: IRT-YUCCA-NET-JP
address: Wakamiya 5-21-1, Higashi-Ku, Fukuoka-Shi, Fukuoka 813-0036, Japan
e-mail: support@yucc-a.biz
abuse-mailbox: support@yucc-a.biz
admin-c: YCNA1-AP
tech-c: YCNA1-AP
auth: # Filtered
mnt-by: MAINT-YUCCA-NET-JP
changed: hm-changed@apnic.net 20120821
source: APNIC
person: Suguru Maruyama
address: Wakamiya 5-21-1, Higashi-Ku, Fukuoka-Shi, Fukuoka 813-0036
country: JP
phone: +81-80-3427-8359
e-mail: support@yucc-a.biz
nic-hdl: SM1405-AP
mnt-by: MAINT-YUCCA-NET-JP
changed: support@yucc-a.biz 20120821
source: APNIC
% This query was served by the APNIC Whois Service version 1.69.1-APNICv1r0 (WHOIS1)

照会結果に書かれているアビューズ連絡先のドメイン(yucc-a.biz)と送信元サーバーのドメイン(dead-square.info)を照会した結果は・・・
お名前.comのwhois代行サービスを使用しているようで、詳細は判りませんでした。
 
yucc-a.biz:80にリクエストを投げてみるとApacheからの正常なレスポンスが返ってきたのでcurlでwebを根こそぎ落としてみました。
社名は「株式会社white」・・うわーやばそうだw

そして、HTMLコードを見ていて面白いのは、「お問い合わせ」のフォーム。
formエレメントがなく、javascriptでデータを送信する機能もないただのお飾りフォームなのだ。
これはますます“業者”臭が。
 
とりあえず、アビューズ連絡先である「abuse@yucc-a.biz」にメールを送って終わっておこう。
 
 
・・・と思ったのだけど、やっぱりアビューズ連絡先も罠でした。
連絡をしてから1時間もしない間にアビューズ連絡に使用したメールアドレスにスパムメールが山ほど来るようになりました。
それも出会い系、ブランド品販売、中古車・・等あらゆるスパムメールが来て、送信元サーバーも違う。

アビューズ連絡に使用したアドレスは「abuse@yucc-a.biz」との連絡用に作ったアドレスでアドレスは自分のサーバーの物。
フリーメールや一部ISPで極希にある「以前の人が使用していたアドレス」・・・中古アドレスは無い。
 
と言うことでyucc-a.biz、株式会社whiteはメールアドレスを販売しているようです。
こんな時に専用のアドレスを用意できるのは色々と助かりますねーw

最近うちのサーバーが重かった理由

最近うちのブログの表示が遅いのでここ2日ほど原因を調べていました。

最初は導入しているアクセス解析「WP SlimStat」が原因かなーと思って使用しないようにしてみた所、110ms前後の速度UPを確認できました。
が、ブログのHTML転送だけで2000~5000ms(2~5秒)かかっている・・・
 
Apacheを再起動すれば ~1時間位は軽いのでApacheの問題か?と思ってログなどを見ていたらすごい物を発見。
ブログコンテンツ重いファイルへ同じホストが山ほどリクエストを飛ばしてきているのだ。

/uploads/2014/04/skyrim_fennec_retexture_complete.mp4 HTTP/1.1" 200 26222909

↑がずらーーーーーーーーーーーーーーーーーーーっと。

問題のホストはamazonaws.com
 
とりあえず対象のIPをブロックして、Apacheのログを添えてAmazonへアビューズ報告をしておきました。

結果、Apacheを再起動~1時間以上経過しても300~1000msぐらいでレスポンスを返せるように戻りました。