0

我对android开发很陌生。我在应用程序中的一个按钮将用户发送到一个网页,用户可以在其中登录特定系统。

该网页有用户名和密码的文本框。一旦您单击登录按钮(在网页中),它就会触发 javascript 登录到系统。触发的代码是:onclick="updateAction('TourAccLogin');document.main_form.submit();

登录网页表单:

用于登录的网页表单

我的问题是: 我在应用程序中有用户名和密码,我想知道我是否可以以某种方式操纵此表单,自动登录而无需用户干预?意思是,我将填写用户名和密码,然后“单击”登录按钮。因此,用户将立即被引导到系统,而无需输入用户名和密码。

4

2 回答 2

1

这种技术对我有用。在我的例子中,我正在加载一个名为 mElementId 的隐藏字段,其中包含存储在 someData 中的字符串值,然后触发其 onchange 事件,该事件不会自行触发。我包含它是为了展示如何在一次注入中堆叠 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,则创建帖子参数并发送它。无论哪种方式,您都可以在 web 视图中处理结果,这将允许您现有的界面在应有的位置拾取。

当然,如果您使用哈希作为密码或对密码进行加盐,则需要在发送之前完成所有这些操作。

于 2013-03-26T21:16:06.257 回答