Ho fatto dei progressi nell'apprendimento della sicurezza delle applicazioni web. In questo momento sto provando a finalizzare la mia strategia per la sanitizzazione dell'input e dell'output.
Sfondo: gli utenti possono inviare recensioni al sito e tali recensioni vengono visualizzate in determinate visualizzazioni.
1) Dati di pubblicazione . Quando pubblichi i dati (utilizzando $ this- > input- > post ('review')), sono preoccupato dell'utilizzo del filtro XSS, perché rimuove i dati dell'utente e non è possibile recuperarli, quindi I ' Sto cercando un altro modo per convalidare l'input.
Risulta che per la convalida del modulo, Codeigniter ci consente di " utilizzare funzioni PHP native che consentono un parametro . " Quindi posso usare strip_tags, htmlentities, htmlspecialchars, ecc.
Domanda: quale delle seguenti funzioni consiglieresti di utilizzare per convalidare l'input dell'utente? (o XSS, se pensi che sia meglio)
2) Query di database . Sto utilizzando il record attivo di CI per le mie query, quindi sono automaticamente sfuggiti (solo così sai che ho pensato e gestito questo)
3) Uscita dati . Ci sono diverse viste in cui viene visualizzato l'output. So che ho bisogno di sfuggire all'output. Di solito è simile a questo:
<?php echo $review; ?>
Domanda: Semplicemente aggiungo una funzione PHP all'output, come sotto, o c'è qualcos'altro che dovrei fare per evitare che l'output venga eseguito?
<?php echo htmlentities($review, ENT_QUOTES); ?>