ブックマークレットでパスワードを自動で入力させる

投稿日:2019-10-02

みずほダイレクトで振込時の第2暗証番号6桁から数字4桁を抽出するのが面倒だったので、
ブックマークレットを使って入力すべき数字4桁を表示できるようにしました。

※2019/11/25修正 元々はjsで暗証番号入力までできていたのですが、みずほ側で対応をしたらしく
jsで要素書き換えをすると画面が真っ白になるようになったので、暗証番号は表示するまでに留めるようにしました。

ブックマークレット(Bookmarklet)とは

詳細はこちら
ウィキペディア

簡単に言えばブラウザのお気に入りにURL代わりにjavascriptを入力して保存しておいて。
そのjavascriptを実行したい時に該当のお気に入りをクリックするというものです。

たとえばお気に入りにjavascript:alert('hoge');と登録しておけば、
そのお気に入りをクリックしたら<a href="javascript:alert('hoge');">hoge</a>をクリックした時と同じ事が起きます。

みずほダイレクトに仕込んでみる

みずほダイレクトの振込時に第2暗証番号を入力する画面まで来たら
以下のjavascriptを実行すると第2暗証番号が表示されます。

let secondPass = '123456'; // ここに第2暗証番号の6桁を入れてください
let orderNum = 0;
let pickPw = '入力するパスワード: ';

// 聞かれる第2パスワード4桁を順に処理する
for (let i = 1; i<=4; i++) {
    // 第2パスワードの何番目の数字を聞かれているかチェック
    orderNum = Number(document.getElementById('txtScndPwdDgt' + i).innerHTML);
    // 第2パスワードから対象の数字を抜き出してテキストに追加する
    pickPw += secondPass.substr(orderNum -1, 1)
}
入力すべき4桁の数字を表示する
alert(pickPw);

これをブックマークレット用に1行にします。
また、頭にjavascript:を付けます。

javascript:let secondPass = '123456';let orderNum = 0;let pickPw = '入力するパスワード: ';for (let i = 1; i<=4; i++) {orderNum = Number(document.getElementById('txtScndPwdDgt' + i).innerHTML);pickPw += secondPass.substr(orderNum -1, 1);}alert(pickPw);

あとはブラウザのお気に入りに新しくページを追加し、URLに上記のjavascriptを入力しておくだけです。

みずほダイレクト以外のサイトでもブラウザの開発者ツールでHTML要素を調べれば
似たような処理を作れると思います。