2017-02-23 77 views
0

我已經編寫了一個簡單的Chrome擴展程序,該擴展程序配置了該頁面中的員工ID和字段名稱以觸發焦點。即:idfieldNameChrome擴展程序中斷HTTPS

當用戶在該字段中單擊時,使用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是我們的本地Web服務器的內部IP地址,以用戶的PC也可以到達。

沒有從該頁面發送網站數據,只有來自擴展配置的值。

上述工作正常。但是...

我加載HTTPS網站,Chrome報告它是安全的。

我在相關字段中單擊並將staffID發送到我們的本地網絡服務器。但是,該網站現在報告爲不安全。

我能做些什麼來阻止這種情況發生?

感謝

回答

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}); 
    }); 
    

或者,您可以發送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 
    }); 
    
+0

謝謝我會盡快測試這個 – Rocket

+0

謝謝,我正在考慮設置它。我現在運行第二個Ajax時,我可以做'focusout'嗎? – Rocket

+1

當然:簡單地在內容腳本中烹飪整個網址並通過消息發送。 – wOxxOm