ver.1サポートサイト


フォームの認証キーとは何ですか?

最終更新日:2023年10月31日

認証キーとは

更新フォームや削除フォームの設定で、識別キーのみを設定している場合、第三者がなりすまして情報を更新することができてしまいます。
そこで、第三者が推測できない値の「認証キー」を設定して、なりすましての更新や削除を防ぎます。

更新フォームや削除フォームで認証キーを設定しない場合の懸念やリスクについてはこちらをご確認ください。

更新タイプおよび削除タイプのフォームにおける識別キーと認証キーの使い分けは以下の通りです。

識別キー:更新・削除する対象のレコードを特定するためのキー
認証キー:識別キーで特定したレコードを本当に更新・削除して良いのか、識別キーと合わせて二重の本人確認をするためのキー

認証キーの主な使われ方

更新フォームや削除フォームの用途によっては、認証キーが不要の場合があるため、設定画面にて入力必須にしていませんが、なりすましての更新削除を防ぎたい場合は、認証キーの設定をお勧めします。

認証キーはログインパスワードに似ていますが、フォーム機能の認証キーは、他の入力値とともにフォーム送信される値です。

主に、フィールド値自動生成トリガ機能でランダム値を付与して使用します。

ランダム値を付与する場合、認証キーの値はマイエリアにログインして呼び出して使用します。

 

関連するページ

安全なスパイラルアプリケーションの作り方(機能グループ別)

 

1.認証キーの設定方法

メールマガジン会員管理を行っているDB(会員DB)に認証キーを追加し、フォームに認証キーを設定する手順を例にご案内します。

(1)会員DBに認証キー用のフィールド(変更・停止キー)を追加

DB>通常DBを選択します。

 

作成した会員DBを選択します。

DBの作成方法は「通常DB」をご確認ください。

 

「フィールド」を選択し、「構成変更」をクリックします。

 

簡易パスワードの「>」をクリックし、追加された簡易パスワードの「歯車マーク」をクリックします。

なお、認証キーには以下のフィールドタイプを使用できます。

「簡易パスワード」はパスワードとしてのご利用は非推奨ですが、認証キーとして利用する場合は英数記号を組み合わせたランダム値を生成できるためご利用をお勧めします。

・簡易パスワード

・数字・記号・アルファベット(32 bytes)

・整数

 

(2)認証キー用フィールド(変更・停止キー)にフィールド値自動生成トリガを設定

フィールド名を「変更・停止キー」に変更します。

差替えキーワードを「authKey」と指定します。

フィールド値自動生成トリガは、「値が存在しても上書きする」「数字・アルファベット・記号」「16桁」を選択し、「詳細を閉じる」をクリックします。

フィールド値自動生成トリガの詳細はこちらをご確認ください。

※複雑で推測しにくい値にするため、ランダム値かつ最長の桁数にすることをお勧めします。

 

「保存」ボタンをクリックし、変更内容を保存します。

 

これ以降に登録されるレコードについては、「変更・停止キー」に値が自動生成されます。

登録済みレコードに対して値を追加したい場合は、「登録済みレコードのあるDBにフィールド値トリガを設定する場合」をご確認ください。

(3)マイエリア設定変更

マイエリアに設定した更新ページまたは削除ページに「変更・停止キー」を追加します。

マイエリアの詳しい設定方法は「マイエリア」「8.マイエリア カスタムページ」「マイエリアや単票にフォームを設置したい」をご確認ください。

該当するマイエリアの「カスタムページ」を選択し、「変更・停止キー」を追加したいフォームのページ名を選択します。

 

ページソース内に以下のタグを追加し、「変更」をクリックします。

なお、DBへの「変更・停止キー」フィールド追加時、差替えキーワードに「authKey」以外を設定した場合、タグ内の「authKey」部分は設定した差替えキーワードの文字列に置き換えてください。

 

(追加するタグ)
<input type="hidden" name="authKey" value="%val:usr:authKey%">
(追加後のページソース)

 

(4)フォームに認証キーを設定

会員情報変更フォーム等、作成した更新タイプまたは削除タイプのフォームに認証キーを設定します。

フォームの作成方法はこちらをご確認ください。

作成したフォームにて「使用フィールド」を選択します。

追加した「変更・停止キー」について、「特殊入力 値を引き継ぐ(hidden)」を選択し、「変更」ボタンをクリックします。

 

「一時保存」をクリックします。

 

認証キーフィールドに今回追加した「変更・停止キー」を選択し、「変更」ボタンをクリックします。

 

入力ページで「ソースデザイン」を使用している場合は、「一時保存」をクリックしてください。

入力ページで「設定デザイン」を使用している場合は「変更内容をフォームに反映」をクリックしてください。

 

入力ページで「ソースデザイン」を使用している場合、入力ページの設置ソースに以下のタグを追加し、「変更」ボタンをクリックください。

DBへの「変更・停止キー」フィールド追加時、差替えキーワードに「authKey」以外を設定した場合、タグ内の「authKey」部分は設定した差替えキーワードの文字列に置き換えてください。

 

(追加するタグ)
<input type="hidden" name="authKey" value="$authKey:val$">
(追加後のページソース)

 

「変更内容をフォームに反映」を選択します。

2.登録済みレコードのあるDBにフィールド値自動生成トリガを設定する場合

自動生成トリガは新規登録時にのみ動作します。既に登録済のレコードに自動的に生成されません。
既に登録済のレコードに認証キー用のランダム値を登録する方法をご案内いたします。
なお、DBにフィールド(更新・停止キー)を追加し、フィールド値自動生成トリガを設定していることを前提とします。(「1.認証キーの設定方法」の1,2を参照)

 

(1)トランザクションDBを使う方法

  1. トランザクションDBを作成し、フィールドに、識別キーとなるフィールド(会員DBの入力必須かつ重複不可フィールドと同じフィールドタイプ)と認証キーとなるフィールド(会員DBの認証キーと同じフィールドタイプ)を設定し、認証キー用フィールドに自動生成トリガを作成する。
  2. アクション設定にて、更新対象は会員DBとする更新アクションを作成。会員DBの認証キーフィールドとマッピングする。
  3. 会員DBから認証キーが未登録のレコードの入力必須かつ重複不可フィールドをダウンロードする。
  4. ダウンロードしたデータをトランザクションDBに一括登録する。
  5. 一括登録した時に生成されたランダム値が会員DBの認証キー用フィールドに登録される。

(2)表計算ソフトなどで一括更新を行う方法

  1. 会員DBから認証キーが未登録のレコードの入力必須かつ重複不可フィールドの値(以下、識別値)をダウンロードする。
  2. ダウンロードした識別値の右列にランダム値を生成する関数を設定。
  3. 識別値の列とランダム値の列をコピーして、スパイラルの貼付アップロード画面に貼り付け。
  4. 一括更新の手順に添って作業。