Validate password
Validate password ( userID ; password {; digest} ) -> 戻り値
引数 | 型 | 説明 | |
---|---|---|---|
userID | Integer, Text | → | ユニークなユーザID |
password | Text | → | 暗号化されていないパスワード |
digest | Boolean | → | Digest password = True, Plain-text password (default) = False |
戻り値 | Boolean | ← | True = 有効なパスワード False = 無効なパスワード |
このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。
説明
Validate password コマンドは引数 password に渡された文字列が、引数 userID に渡されたID番号または名前を持つユーザアカウントのパスワードである場合、Trueを返します。
任意の digest 引数は、 password 引数に含まれるパスワードが標準テキストのパスワードかハッシュドパスワード(ダイジェストモード)かを指定します:
- True を渡した場合、 password にはハッシュドパスワードが格納されていること(ダイジェストモード)を意味します。
- False を渡すかこの引数を省略した場合、 password には標準テキストのパスワードが格納されていることを意味します。
この引数はデータベース認証メソッド、特に On REST Authentication データベースメソッド を使用しているときに有用です。
フラッディング ( ブルートフォース攻撃 ) 、言い換えれば複数のユーザ名とパスワードの組み合わせによる試みを防ぐために、コマンドは遅れて実行されます。その結果、このコマンドを4回呼び出す と、10秒間の遅延が発生します。この遅れは、ワークステーション全体を通して発生します。
例題 1
以下の例題を使用して、ユーザ “Hardy” のパスワードが “Laurel” であるかどうかを調べます。
GET USER LIST(atUserName;alUserID)
$vlElem:=Find in array(atUserName;"Hardy")
If($vlElem>0)
If(Validate password(alUserID{$vlElem};"Laurel"))
ALERT("Yep!")
Else
ALERT("Too bad!")
End if
Else
ALERT("Unknown user name")
End if
例題 2
On REST Authentication データベースメソッド において、接続リクエストを(データベースの4Dユーザーを使用して)テストしたい場合:
$0:=Validate password($1;$2;$3)