使用chrome扩展程序登录网站并从中获取数据

Tom*_*nal 9 google-chrome xmlhttprequest cross-domain google-chrome-extension

我正在开发一个Chrome/Chromium扩展程序,它将从学校系统中读取成绩等级的学校成绩.问题是该网站不记得登录用户.因此,我不能使用AJAX.

只有当我在其他标签上登录该页面时.但我想在后台自动登录该页面.解决方案可能是iframe标签,但Chrome/Chromium不允许我使用iframe内容进行阅读和操作.是否有任何解决方案如何作为登录用户在页面中操作?谢谢

ser*_*erg 9

您可以通过背景页面中的javascript模拟表单提交.首先,您需要仔细检查通过登录表单发送的数据以及哪个URL(在发送之前可以使用javascript更改表单,因此您需要知道实际发送的内容,而不仅仅是<form>元素中的内容).您可以使用Chrome控制台进行简单的操作,如果还不够,则可以使用适用于Firefox的防篡改数据插件,对于硬核流量检测,您可以使用Wireshark分析器.

然后在后台页面(我在这里使用jQuery):

$.ajax({
    url: "https://login_form.html",
    type: "GET",
    dataType: "html",
    success: function() {
        $.ajax({
            url: "https://login_form_submits_to.html",
            type: "POST",
            data: {
                    "username": "username",
                    "password": "password",
                    "extra_field": "value"
            },
            dataType: "html",
            success: function(data) {
                   //now you can parse your report screen
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

好的是,Chrome会保留会话和Cookie,因此就像手动登录一样(如果您现在在浏览器中打开您的网站,则应该登录).

  • 我可以看到我讨论的时间已经很晚了,但我只想询问以这种方式发送登录数据是否存在任何安全隐患. (2认同)