La scansione delle vulnerabilità dell'applicazione web AngularJS non riesce a causa di "#" nell'URL

1

Ho provato a scansionare la mia applicazione web realizzata con il front-end AngularJS e il backend PHP. Ma la scansione con scanner come Nessus e Websecurify fallisce a causa di "#" nell'URL. Il mio URL ha il formato

http://domain.com/webapp/index.php/base#controller/function

Quando ho controllato il registro di accesso di Apache, ho scoperto che gli scanner scartano la porzione URL dopo "#". Quindi esegue sempre la scansione per http://domain.com/webapp/index.php/base .

Come posso risolvere questo problema?

    
posta Harikrishnan 23.12.2015 - 08:02
fonte

1 risposta

1

I browser non inviano nulla dopo il carattere hash al server. Qualunque cosa dopo quel personaggio può essere accessibile solo dal lato client con JavaScript. Alcuni scanner di vulnerabilità (come la suite di burp) eseguono un'analisi del codice statico per verificare se l'applicazione è vulnerabile allo scripting cross-site basato su DOM, ad esempio. Generalmente non eseguono JavaScript, quindi i tipici metodi di scansione non si applicano qui.

Vedi anche: link

The fragment identifier functions differently than the rest of the URI: namely, its processing is exclusively client-side with no participation from the web server — of course the server typically helps to determine the MIME type, and the MIME type determines the processing of fragments. When an agent (such as a Web browser) requests a web resource from a Web server, the agent sends the URI to the server, but does not send the fragment. Instead, the agent waits for the server to send the resource, and then the agent processes the resource according to the document type and fragment value.[2]

Quindi le tue opzioni sono di sfocare manualmente i parametri dopo il carattere hash nel browser o leggere il codice sorgente JavaScript.

    
risposta data 23.12.2015 - 10:29
fonte