0

私はAndroid開発にかなり慣れていません。アプリのボタンの1つは、ユーザーをWebページに送り、そこでユーザーは特定のシステムにログインできます。

Webページには、ユーザー名とパスワードのテキストボックスがあります。(Webページの)[ログイン]ボタンをクリックすると、JavaScriptがトリガーされてシステムにログインします。トリガーされるコードは次のとおりです。onclick="updateAction('TourAccLogin');document.main_form.submit();

ログインするWebページフォーム:

ログインするWebページフォーム

私の質問は次のとおり です。アプリにユーザー名とパスワードがあります。このフォームを操作できるかどうかを知りたいのですが、ユーザーの介入なしに自動的にサインインしますか?つまり、ユーザー名とパスワードを入力し、ログインボタンを「クリック」します。そのため、ユーザーはユーザー名とパスワードを入力しなくても、すぐにシステムに誘導されます。

4

2 に答える 2

1

このテクニックは私のために働いた。私の場合、someDataに格納されている文字列値を使用してmElementIdで指定された非表示フィールドをロードし、それ自体では発生しなかったonchangeイベントを発生させています。1回のインジェクションでjavascriptコマンドをスタックする方法を示すためにこれを含めました。私はこれの変形があなたのために働くと確信しています。

また、JavaScriptエラーを防ぐために、一重引用符をエスケープしました。セミコロンを含む他の特殊文字をエスケープする必要がある場合があります。私の場合、データはすでにクレンジングされているため、必要ありませんでした。

// Copy data to element
mWebView.loadUrl("javascript:(function() { " +  
        "document.getElementById('" + mElementId + "').value = '" + 
        someData.replace("'", "\'") + "'; " +
        "document.getElementById('" + mElementId + "').onchange();" +
        "})()");
于 2013-03-26T21:19:49.427 に答える
0

あなたはそれがあなたのシステムであると言うので、ログインを処理するために舞台裏で何が実行されているかを知っています。私は嘲笑しているのではなく、確認しているだけです。これを行う前に、ユーザー名/パスワードを持っているある種のビューを作成したと仮定します。フォームを操作する方法があるかどうか尋ねられるので、私はこれを疑問視しています...

そうは言っても、ログインを処理するスクリプトに通常どおりにデータを送信します。GETを使用している場合は、http://some.domain.com/somescript?username = mumble&password=fooです。POSTを使用している場合は、post引数を作成して送信します。どちらの方法でも、結果をWebビューで処理できます。これにより、既存のインターフェイスが必要な場所を取得できるようになります。

もちろん、パスワードにハッシュを使用している場合、またはパスワードをソルトしている場合は、送信する前にすべてを行う必要があります。

于 2013-03-26T21:16:06.257 に答える