A partire da 2 diverse applicazioni, sono stato in grado di inviare le richieste cross-orgin. Sebbene il browser restituisca un errore di Cross-Origin, ma il mio server sta ancora ricevendo ed eseguendo la richiesta. Ad esempio, da un sito remoto, posso richiamare richiesta tra domini utilizzando,Come impedire ad altri siti Web di inviare richieste ajax su più domini?
$.ajax({
xhrFields: {
withCredentials: true
},
data:{ my: 'a' },
url: 'http://MyApp/Page',
type: 'POST'
})
So che il browser non restituisce la risposta alla sceneggiatura, ma la mia pagina del server ancora eseguire.
Diciamo che un utente innocente viene registrato in un sito, http://abc.com. Questa applicazione accetterà richiesta post per inserire un record. Quando innocenti visite degli utenti a innocenti http://HackerSite.com, il http://HackerSite.com saranno in grado di inviare una richiesta POST per http://abc.com tramite Ajax. Come evitare questo?
Nizza domanda. Se hai una risposta per questo, apprezzerò molto se pubblichi se. –
Per un servizio WCF, è possibile impostare ** ** crossdomainscriptaccessenabled su false nella configurazione punto finale. – Saranya
Avrai lo stesso problema con un modulo di invio, nessun javascript coinvolto. Le specifiche CORS non sono state create pensando alla sicurezza aggiuntiva. Invece, ti permette essenzialmente di eseguire le stesse azioni che potresti già eseguire (cross-origin) con ajax. Le specifiche CORS va un po 'più in là, in quanto assicurano il server non ha nemmeno ricevere la richiesta di fondo, se il server non correttamente opt-in per le specifiche e la stessa richiesta non poteva essere inviato cross-origine sans ajax (diciamo, tramite un modulo di invio). Quest'ultimo concetto è chiamato preflight. –