【誤ってマイナンバーを送信されないよう水際ブロックを簡単に導入する方法】
マイナンバーが手元に届いたという方もいらっしゃるであろう今日この頃、みなさまいかがお過ごしでしょうか?
みなさまの感じによっては、まったくたいした話ではないことが予想されますが、貴社の既存のサイトの全ページの全フォームに、簡単にマイナンバーを検知する処理を導入して、そもそもマイナンバーを受け取らないようにすることで情報セキュリティ上のリスクを増やさないという、画期的(?)な対策方法をご紹介いたします。
おそらく個人情報を取り扱う第1セクタ系やECサイト、士業等には相性がいいかと思いますが、サイト訪問者からマイナンバーを誤送信された後で問い合わせをされて責任問題にならないよう、はじめから「受け取らない」サイトにしておくことで、逆にセキュリティ対策にしっかり取り組んでいて、このサイトは安心して利用できますね!ということをアピールできる、いい機会になるかもしれません。
対策方法は、びっくりしてしまうくらい簡単です。3ステップです。
1. サイトが全ページで読み込んでいる共通処理系のjsファイルを開きます。
たいていはcommon.jsのようなかたちになっているのではないでしょうか?
なければhtmlの共通ヘッダーテンプレートのようなファイルにscriptタグを追加して、common.jsという空ファイルを読み込むようにしてください。
2. common.jsのような共通処理系のjsファイルの最下記に以下をコピペします。
jQuery(document).ready(function(){ // カスタム設定 var target_button = 'input[type=submit], input[type=button]'; var target_form = 'form'; var target_input = 'input[type=text]'; var confirm_text = 'マイナンバーのように見受けられる数値が入力されていますが本当に処理を続けますか?'; // 一括マイナンバーチェック var is_escape = false; jQuery(target_button).bind('click', function(){ jQuery(this).closest(target_form).find(target_input).each(function(){ if ($.trim(jQuery(this).val().match(/^[0-90-9]{12}$/))) { if (is_escape = !confirm(confirm_text)) { if (typeof tb_remove === 'function') tb_remove(); return false; } } }); if (is_escape) return false; }); });
3. カスタム設定というコメントの下4行を、サイトの構成にあわせて適時変更してください。
aタグを送信ボタンの代わりにしているようなページもある場合は var target_button = ‘input[type=submit], input[type=button], form a'; のような感じですね。
以上です。
これだけで、すべてのページのすべてのフォームに、全半角問わず12桁のマイナンバーと思わしき値が入力されたら、利用者に確認を促すようになります。
メッセージにもう少し免責色を強めて、「マイナンバーではないことに同意したと看做します」的な文章にしてもいいですね。
マイナンバー以外で12桁が入力されるのは、ハイフンなしの携帯電話の国際電話番号か、サービスが独自で発行している会員IDのようなものが12桁であるような場合だけだと思うので、それがサービス上あり得なければ、confirm()ではなく、alert()にして強制的に処理を中断させてもいいと思います。
気をつけなければならないのは、jQueryが導入されていること、送信ボタンにすでに他の処理が設定されていてAjax等でサーバー送信していないこと、でしょうか。
それと、送信フォームをhtmlではなく、js側で動的に描画しているような場合は、bind()ではなく、on()句に変えてもいいかもしれません。
弊社はそれほど営業力が高くないですし、この導入サービスを展開しても1サイト1-2万円くらいの工数しかかからないので、薄利多売よりは公開した方が社会的な貢献につながるかな、と考えた次第です。
とにかくマイナンバー制度にかこつけて、現行サイトの危機感をあおって改修費用の高い提案をしてくるようなシステム開発会社に出会う前に、みなさんにこんなノウハウを知ってもらえると嬉しいと思う今日この頃です。