Chrome扩展程序会破坏HTTPS

时间:2017-02-23 08:52:53

标签: jquery google-chrome-extension https

我已经编写了一个简单的Chrome扩展程序,该扩展程序配置了工作人员ID和该页面中的字段名称以引起关注。即:idfieldName

当用户在该字段中单击时,ajax用于将用户ID发送到本地Web服务器。

$('[name=' + fieldName + ']').focus(function () {
    console.log ( "FOCUS - "  + id + ' ' + fieldName)
    $.ajax({ url : 'https://LOCAL_IP_ADDRESS/staff.php?staffID=' + id });
});

扩展程序可以在任何托管网页上运行,LOCAL_IP_ADDRESS是我们本地网络服务器的内部IP地址,用户PC也可以访问该网址。

该网站没有发送任何数据,只有扩展配置中的值。

以上工作正常。然而...

我加载了一个HTTPS网站,Chrome会将其报告为安全。

我在相关字段中单击,staffID将发送到我们的本地网络服务器。但是,该网站现在报告为不安全。

我能做些什么来阻止这种情况发生吗?

由于

1 个答案:

答案 0 :(得分:1)

  1. 声明event page

    "background": {
        "scripts": ["jquery.js", "eventPage.js"],
        "persistent": false
    },
    
  2. 从您的内容脚本中,将邮件中的ID发送到活动页面:

    $('[name=' + fieldName + ']').focus(() => chrome.runtime.sendMessage({id}));
    
  3. 事件页面执行AJAX请求:

    chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
        $.ajax({url : 'https://LOCAL_IP_ADDRESS/staff.php?staffID=' + msg.id});
    });
    
  4. 或者,您可以异步地将AJAX请求结果发送回内容脚本:

    • 内容脚本:

      $('[name=' + fieldName + ']').focus(() => {
          chrome.runtime.sendMessage({id}, status => console.log(status))
      });
      
    • 活动页面:

      chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
          $.ajax({
              url : 'https://LOCAL_IP_ADDRESS/staff.php?staffID=' + msg.id,
              complete: xhr => sendResponse(xhr.status),
          });
          return true; // leave the channel open for sendResponse
      });