
認証キーとは何ですか?
最終更新日:2020年11月20日
更新フォームや削除フォームの設定で、識別キーのみを設定している場合、第三者がなりすまして情報を更新することができてしまいます。
そこで、第三者が推測できない値の認証キーを設定して、なりすましての更新や削除を防ぎます。
識別キーと認証キーの使い分けは以下の通りです。
識別キー:更新や削除をするレコードを特定するためのキー
認証キー:識別キーで特定したレコードを本当に更新削除して良いのかチェックするためのキー
更新フォームや削除フォームの用途によっては、認証キーが不要の場合があるため、設定画面にて入力必須にしていませんが、なりすましての更新削除を防ぎたい場合は、認証キーの設定をお勧めします。
認証キーを設定していない場合、起こり得ること
会員登録が必要なWebサイトにて、ユーザ名が主キー(識別キー)になっているものとします。(ユーザ名を識別キーとしている前提です)
ユーザA(ユーザ名:userA)が会員情報変更フォームのHTMLファイルを自分のPCに保存。
HTMLソースを見ると、
<input type=”hidden” name=”memberid” value=”userA”>
と書いてある箇所がありました。これを
<input type=”hidden” name=”memberid” value=”userB”>
と書き換えて、ブラウザ上で「送信」ボタンを押すと、ユーザB(ユーザ名:userB)がDB内に実在した場合、ユーザBの情報が更新されます。
認証キーの使い方
- 会員情報を格納しているDB(以下、会員DB)に認証キー用のフィールド(簡易パスワード、数字・記号・アルファベット(32 bytes)、整数)を追加。
- 簡易パスワードは非推奨ですが、後述のフィールド値自動生成トリガを作成する場合、数字やアルファベットを組み合わせたランダム値を生成できるため、認証キーとして利用する場合にお勧めします。
- フィールド値自動生成トリガにて、トリガを作成。
- 複雑で推測しにくい値にするため、ランダム値かつ最長の桁数にすることをお勧めします。
- 以下のフィールド値自動生成トリガの注意事項をご覧ください。
- フォームの使用フィールド設定にて、認証キーの入力設定を「特殊入力(値を引き継ぐhidden)」で設定。
- フォームの使用フィールド設定にて、認証キーを選択。
フィールド値自動生成トリガの注意事項
自動生成トリガは新規登録時にのみ動作します。既に登録済のレコードに自動的に生成されません。
既に登録済のレコードに認証キー用のランダム値を登録する方法をご案内いたします。
上記「認証キーの使い方」1と2を設定完了しているものとします。
1. トランザクションDBを使う方法
- トランザクションDBのフィールドに、識別キーとなるフィールド(会員DBの入力必須かつ重複不可フィールドと同じフィールドタイプ)と認証キーとなるフィールド(会員DBの認証キーと同じフィールドタイプ)を設定し、認証キー用フィールドに自動生成トリガを作成する。
- アクション設定にて、更新対象は会員DBとする更新アクションを作成。会員DBの認証キーフィールドとマッピングする。
- 会員DBから認証キーが未登録のレコードの入力必須かつ重複不可フィールドをダウンロードする。
- ダウンロードしたデータをトランザクションDBに一括登録する。
- 一括登録した時に生成されたランダム値が会員DBの認証キー用フィールドに登録される。
2. 表計算ソフトなどで一括更新を行う方法
- 会員DBから認証キーが未登録のレコードの入力必須かつ重複不可フィールドの値(以下、識別値)をダウンロードする。
- ダウンロードした識別値の右列にランダム値を生成する関数を設定。
- 識別値の列とランダム値の列をコピーして、スパイラルの貼付アップロード画面に貼り付け。
- 一括更新の手順に添って作業。