資格情報でESXiログインWebページを自動入力するgreasemonkeyスクリプトを作成しようとしています。次のコードは、入力フィールドを記入し、投稿ボタンを有効にします。私は資格情報が正しいにもかかわらずCannot complete login due to an incorrect user name or password.
参照送信ボタンをクリックした後、残念ながらESXi Webクライアントの自動資格情報
// ==UserScript==
// @name ESXi autofill credentials
// @namespace https://esx_address/ui/*
// @version 0.1
// @description Autofills user and password inputs
// @author Mirek
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @match https://esx_address/ui/*
// @grant none
// ==/UserScript==
try {
waitForKeyElements ("#password", function(jNode) {jNode.val("password");});
waitForKeyElements ("#username", function(jNode) {jNode.val("user");});
waitForKeyElements ("#submit", function(jNode) {jNode.prop("disabled", false);});
} catch(err) {
console.log("Something went wrong: " + err.message);
}
を。
おそらく問題は、送信ボタンを有効にしていることです。ログインページでは、ユーザがユーザー名フィールドに何かを入力すると、ログインページが有効になります。残念ながら、スクリプトはこの動作を引き起こしません。スクリプトを有効にすると、ログインページに行き、ユーザー名とパスワードフィールドの最後の文字を再入力するとログインが成功することが分かりました。
送信ボタンをオンにする方法で入力フィールドを埋める方法はありますか?
ありがとう、メイト! changeAndBlurがトリックをしました。私は疑問に思っています - なぜ開発者はこのプラクティスに従っていますか?セキュリティを強化することですか?悪意のあるコーダーは、いつもそのような "機能"を回避する方法を常に見つけるでしょう。 – Mirek
時々、ボットを止めるための誤った試みです(そうではありません)。場合によっては、検証エンジンが貧弱な場合もあります。実際には、最高のユーザーがワンタイムパスワード(またはパスフレーズ)をパスワードマネージャと組み合わせて使用すると、ユーザーがどのように作業しているか(マウスを持っていると仮定して手動で資格情報やマウスアウトなどを入力する)という悪い仮定を立てることがあります。 –