English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il Javascript può essere uno strumento di attacco degli hacker contro i siti web, tra cui l'iniezione di script js (javascript) maligni è una delle tecniche. Allora, cosa possiamo fare per prevenire gli attacchi di inject JavaScript? Ecco una buona affermazione da condividere con voi:
Cos'è un attacco di inject JavaScript?
Ogni volta che si accetta il contenuto inserito dall'utente e si visualizza di nuovo questo contenuto, il sito è facile vittima di attacchi di inject JavaScript. Studiamo un'applicazione specifica che è facile vittima di attacchi di inject JavaScript. Supponiamo di aver creato un sito web di feedback dei clienti. I clienti possono accedere al sito e inserire feedback sui prodotti. Quando i clienti inviano il feedback, le informazioni di feedback vengono visualizzate di nuovo nella pagina di feedback.
Il sito web di feedback dei clienti è un sito web semplice. Sfortunatamente, questo sito è facile vittima di attacchi di inject JavaScript.
Supponiamo di inserire il seguente testo in un modulo di feedback dei clienti:
<script>alert(“Boo!”)</script>
Questo testo rappresenta uno script JavaScript che visualizza un messaggio di avviso. Quando qualcuno invia questo script a un modulo di feedback dei clienti, il messaggio Boo! verrà visualizzato ogni volta che qualcuno accede al sito web di feedback dei clienti. Potresti anche pensare che nessuno utilizzerà l'attacco di inject JavaScript per fare danni.
Ora, la tua prima reazione all'attacco di注入 JavaScript potrebbe essere di ignorarlo. Potresti pensare che l'attacco di注入 JavaScript non sia dannoso, sfortunatamente, gli hacker possono utilizzare l'inject di JavaScript per compiere attività di danneggiamento nei siti web. L'uso di attacchi di inject JavaScript può eseguire attacchi di script incrociati (XSS). Negli attacchi di script incrociati, è possibile rubare informazioni sensibili degli utenti e inviare queste informazioni a un altro sito web.
Ad esempio, gli hacker possono utilizzare attacchi di注入 JavaScript per rubare i valori dei Cookies dal browser degli altri utenti. Se si conservano informazioni sensibili (come password, numero di carta di credito o numero di assicurazione sociale) nei Cookies del browser, gli hacker possono utilizzare attacchi di注入 JavaScript per rubare queste informazioni. O se l'utente inserisce informazioni sensibili nei campi di input del modulo della pagina e la pagina è vulnerabile agli attacchi JavaScript, gli hacker possono utilizzare lo script注入ato per ottenere i dati del modulo e inviarli a un altro sito web.
Presta la massima attenzione. Considera gli attacchi di注入 JavaScript con serietà e proteggi le informazioni sensibili degli utenti. Nei prossimi due paragrafi, discuteremo due tecniche per prevenire che un'applicazione ASP.NET MVC venga attaccata dagli attacchi di注入 JavaScript.
Metodo 1:Codifica HTML nella vista
Un semplice metodo per prevenire gli attacchi di注入 JavaScript è quello di codificare HTML qualsiasi dato di input dell'utente visualizzato nella vista
ad esempio: <%=Html.Encode(feedback.Message)%>
Cosa significa codificare una stringa HTML? Quando si codifica una stringa HTML, i caratteri pericolosi come < e > vengono sostituiti con gli enti HTML, come < e >. Pertanto, quando si codifica una stringa HTML <script>alert(“Boo!”)</script>, essa viene convertita in <script>alert(“Boo!”)</script>. Il browser non esegue lo script JavaScript quando analizza la stringa codificata, ma visualizza una pagina innocua
Metodo 2:Codifica HTML prima di scrivere nel database
Oltre ad utilizzare la codifica HTML per i dati visualizzati nelle viste, è possibile utilizzare la codifica HTML prima di inviare i dati al database. Il secondo metodo è quello descritto nel programma di esempio 4. La codifica HTML prima di scrivere nel database
ad esempio:
public ActionResult Create(string message) { // Aggiungi feedback var newFeedback = new Feedback(); newFeedback.Message = Server.HtmlEncode(message); newFeedback.EntryDate = DateTime.Now; db.Feedbacks.InsertOnSubmit(newFeedback); db.SubmitChanges(); // Redirect return RedirectToAction("Index"); }
Si prega di notare che il valore di Message è stato codificato in HTML prima di essere inviato al database durante l'operazione Create(). Quando viene rimosso il Message nella vista, il Message viene nuovamente codificato in HTML, pertanto non eseguirà alcun JavaScript inserito nel Message.
Sommario
Di solito, le persone preferiscono utilizzare il primo metodo discusso in questo tutorial, piuttosto che il secondo metodo. Il problema del secondo metodo è che i dati HTML codificati verranno conservati nel database. In altre parole, i dati nel database conterranno caratteri strani. Quali sono i suoi svantaggi? Se è necessario visualizzare i dati del database in un formato diverso dal web, si incontreranno problemi. Ad esempio, non è facile visualizzare i dati in un'applicazione Windows Forms.
Questo è tutto il contenuto dell'articolo, speriamo che sia utile per il tuo studio e che tu sostenga vivacemente il tutorial.
Dichiarazione: il contenuto di questo articolo è stato prelevato da Internet, di proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.