Rendi sicuri tutti gli input dei moduli, ma consenti qualsiasi tipo di input, incluso il codice

0

Pastebin ti consente di inserire (insieme ad altri siti) il codice in questi moduli.

So che questa può essere un'enorme minaccia per la sicurezza se non eseguita correttamente, quindi mi piacerebbe sapere come vanno a far questo? 'this' Being per consentire l'inserimento di dati tutti in un modulo senza problemi di sicurezza.

Modifica - Qualcuno è in grado di mostrare un semplice esempio?

    
posta Scott Cassidy 16.10.2014 - 02:53
fonte

3 risposte

2

I due rischi principali di un sistema come questo sono:

Il rischio di SQL Injection è mitigato dall'uso di query parametrizzate . Ciò garantisce che i valori dei dati inseriti nel database possano essere interpretati solo come dati e non da parte della query da parte di un utente malintenzionato che sfugge al di fuori del contesto.

L'XSS è impedito dalla corretta uscita in uscita . Ciò impedisce al browser di interpretare qualsiasi markup o codice come script e renderà invece la rappresentazione visiva del markup. Questo dovrebbe essere fatto dalla tua applicazione sull'output dei dati al browser, e di solito non dovrebbe essere memorizzato in questo formato. Questo perché se in un secondo momento dovessi inviare i dati in qualsiasi altro formato (ad es. JSON o testo normale) le cose possono complicarsi perché dovrai prima convertirle in testo normale prima di ricodificarle e questo è dove gli errori possono facilmente accadere per lasciare vulnerabile la tua applicazione.

    
risposta data 17.10.2014 - 10:30
fonte
1

Esci dall'output sostituendo i caratteri "speciali" con le loro entità di carattere HTML. In PHP, puoi farlo utilizzando htmlspecialchars() , ad esempio. Suggerisco di utilizzare il flag ENT_QUOTES per garantire che tutti i tipi di virgolette vengano codificati.

    
risposta data 16.10.2014 - 03:16
fonte
1
  1. Imposta < form > accept-charset Attributo usando UTF-8
  2. Disinfetta tutti i caratteri speciali html / xml e li sostituisce con la loro versione di escape.
  3. Visualizza il codice all'interno di < pre > tag
risposta data 16.10.2014 - 04:24
fonte

Leggi altre domande sui tag