7

仕事で書いたGreaseMonkeyスクリプトがかなりたくさんあり、ここにある内部サイトに自動的にログインします。HTTP認証を使用するタイムシートアプリケーションを除いて、これらのサイトのほぼすべてにスクリプトを作成することができました。

GreaseMonkeyを使用してこのサイトに自動的にログインする方法はありますか?

編集:ブラウザのパスワードストア機能を認識していますが、スクリプトは、サイトの読み込み時にサイトにログインしているかどうかを確認し(HTMLをトラバースして)、ログインページに投稿を送信することでさらに一歩進んでいます。これにより、サイトをロードし、ログインページに入り、クレデンシャルを入力し、送信を押すという手順が不要になります。

4

4 に答える 4

6

「Authorization」HTTP ヘッダーを設定することにより、HTTP 認証を使用してログインできます。このヘッダーの値は文字列「basic username:password」に設定されますが、文字列の「username:password」部分は Base 64 でエンコードされます。 .

http://frontier.userland.com/stories/storyReader$2159

少し調べてみると、GreaseMonkey には GM_xmlhttpRequest というサーバーに GET / POST リクエストを送信できる機能が組み込まれていることがわかりました。

http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html

したがって、すべてをまとめると (さらに、この JavaScript コードを取得して文字列を base64 に変換すると、次のようになります

http://www.webtoolkit.info/javascript-base64.html

var loggedInText = document.getElementById('metanav').firstChild.firstChild.innerHTML;
if (loggedInText != "logged in as jklp") {
    var username = 'jklp';
    var password = 'jklpPass';
    var base64string = Base64.encode(username + ":" + password);

    GM_xmlhttpRequest({
        method: 'GET',
        url: 'http://foo.com/trac/login',
        headers: {
            'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
            'Accept': 'application/atom+xml,application/xml,text/xml',
            'Authorization':'Basic ' + base64string,
        }
    });
}

そのため、サイトにアクセスすると、DOM をトラバースし、ログインしていない場合は自動的にログインします。

于 2008-09-11T03:18:58.447 に答える
3

HTTP認証情報は、ログインだけでなく、すべての要求で送信されます。ブラウザは、最初にログインした後、セッションのログイン情報をキャッシュします。したがって、すでにログインしているかどうかを確認しようとしても、実際には何も保存されません。

また、greasemonkeyを完全に忘れて、次のようにURLにログインすることもできます。

http://username:password@host/

もちろん、これをブックマークに保存することはセキュリティ上のリスクになる可能性がありますが、ブラウザにパスワードを保存することほどではありません。

于 2008-09-08T13:46:14.157 に答える
1

パスワードマネージャーを使用して資格情報を記憶するためにFirefoxを使用してみませんか(Firefoxを使用していると思います)。

このリンクを見つけました:HTMLフォームを使用したHTTP認証。javascriptを使用してHTTP認証を実行できるようです。ただし、最初にURLに移動するときに、Greasemonkeyに割り込みをかけることはできないと思います。グリースモンキーが自動的にリダイレクトしてログインするために使用できる、ある種の起動ポイントを設定する必要がある場合があります。たとえば、クエリ文字列のリンク先URLを取得するローカルページを作成し、Greasemonkeyに認証とリダイレクトを自動的に実行させることができます。唯一の問題は、エントリポイントとして使用するブックマークの起動ページでサイトのブックマークをラップする必要があることです。

于 2008-09-08T05:05:01.523 に答える
0

" http://username:password@host/ " は IE では動作しませんが、FireFox では問題なく動作します。

于 2010-01-15T08:11:20.200 に答える