Come evitare l'attacco cross-frame scripting sull'applicazione core php we

5

Ho sviluppato un'applicazione web che è in core-php come richiesto dal cliente. Il mio cliente ha condotto un test di vulnerabilità e ha trovato uno script cross-frame come vulnerabilità a livello difficile.

Cosa si può fare in questo caso per evitarlo? C'è una scelta migliore disponibile?

    
posta Shaggie 07.12.2016 - 13:36
fonte

3 risposte

3

Lo scripting cross-frame consente a un utente malintenzionato di incorporare il proprio sito Web all'interno del proprio, come frame / iframe e quindi di spiare gli utenti del proprio sito Web.

Questo richiede un po 'di ingegneria sociale. Un utente malintenzionato indurrebbe qualcuno a visitare la sua pagina Web, con un iframe contenente (ad esempio) l'accesso al tuo sito web. Il sito Web principale avrebbe anche bisogno di alcuni Javascript pericolosi per leggere le sequenze di tasti per l'accesso. In teoria, i browser hanno una politica di origine identica che dovrebbe impedire all'aggressore di farlo, tuttavia in realtà questo attacco è possibile, spesso a causa di bug del browser .

Difese:

  1. Come da specifica W3, dovresti includere l'intestazione Content Policy Policy frame-ancestors nella risposta HTTP per evitare che il tuo sito web venga caricato in una cornice. Alcuni browser meno recenti potrebbero non supportare questa intestazione, quindi utilizzare anche l'intestazione X-Frame-Options con valore DENY, SAMEORIGIN o ALLOW-FROM uri. X-Frame-Options ha la precedenza sugli antenati frame CSP in alcuni browser.

  2. Potresti inoltre avere un codice JavaScript "frame-breaker" che impedirà al tuo sito web di essere "incorniciato" nei browser più vecchi.

Queste soluzioni e ulteriori dettagli sono discussi in questo cheatheet OWASP .

    
risposta data 07.12.2016 - 15:52
fonte
0

Da questo e questo luogo migliore per ottenere maggiori informazioni sul problema

@*Prevent Cross-Frame Scripting attacks*@
<script>
    (function (window) {
        if (window.location !== window.top.location)
            window.top.location = window.location;
    })(this);
</script>
    
risposta data 08.06.2018 - 00:40
fonte
0

Non riesco a trovare la domanda correlata in cui ho trovato questo link, ma qui c'è un articolo su FrameBusting e su come dovresti implementarlo

Scritto da Gustav Rydstedt, Elie Bursztein e Dan Boneh della Stanford University con la collaborazione di Collin Jackson della Carnegie Mellon University

Questa è la raccomandazione cartacea:

<style>
    body {display: none; }
</style>
<script>
    if (self === top) {
        document.getElementsByTagName("body")[0].style.display = 'block';
    } else {
        top.location = self.location
    }
</script>

Notare display: none , questo è super importante, perché l'attaccante può semplicemente disabilitare javascript su parte della pagina. Vedi la carta per maggiori informazioni.

    
risposta data 08.06.2018 - 10:25
fonte

Leggi altre domande sui tag