Sto costruendo un'estensione di Chrome che creerà richieste "ricevute" e "inviate" di origine incrociata a pochi siti Web di terze parti. Ho ricercato questo processo per ore e mi sto interessando sempre più alla sicurezza.
Ho bisogno di ottenere le informazioni sull'URL "aggiungi al carrello" e di pubblicare le informazioni dell'utente su quella pagina per compilare i campi richiesti. La mia estensione di Chrome ha una pagina JavaScript di sfondo, una pagina JavaScript popup, una pagina HTML con informazioni utente e una pagina HTML popup. La richiesta HTTP si verificherà sulla pagina JavaScript di sfondo e invierà una richiesta di origine incrociata al sito web che l'utente sta visitando.
Sono preoccupato per la sicurezza durante la pubblicazione di dati utente e la possibilità di recuperare informazioni dannose quando utilizzo la richiesta get, per ottenere dati dalla pagina, possibilmente un'immagine e l'URL add to bag. Ho letto di fuggire; ma non sono sicuro di come funzioni questo processo. Semplicemente uso encodeuricomponent()
?
function httpGetAsync(theUrl, callback){
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
var resp = encodeURIComponent(xmlHttp.responseText)
callback(resp);
}
xmlHttp.open("GET", theUrl, true);
};
Ho trovato questo sito Web che spiega come prevenire gli attacchi XSS: XS (Cross Site Scripting) Cheat Sheet
Devo usare JsonP accoppiato con una funzione di escape come, questa funzione è annidata sotto l'istruzione if?
function (xmlHttp) {
// function to escape data? not sure how to do this
var resp = encodeURIComponent(xmlHttp.responseText)
callback(resp);
}
Il sito web degli sviluppatori di Chrome afferma che:
document.getElementById("resp").innerText = xhr.responseText;
or: resp = JSON.parse(xhr.responseText);
sono pratiche sicure e per evitare semplicemente di usare .innerhtml
.
Qualunque consiglio o materiale di lettura suggerito per ulteriori ricerche mi aiuterà immensamente.