Come si esegue la codifica dell'output su caselle di testo di dimensioni fisse?

-2

Ho una casella di testo di dimensioni fisse che si aspetta "<" e ">" simboli come input. È necessario che la casella di testo preveda '<' e ">" nel suo input quindi non posso eseguire la convalida dell'input per quella casella di testo.

Stavo cercando di applicare il meccanismo di codifica dell'output, ma a causa della sua dimensione (casella di testo) fissa e caratteri extra dal meccanismo di codifica, alcuni dei personaggi vengono troncati per essere visualizzati come output.

In questa situazione, come posso eseguire la convalida per quella casella di testo per evitare attacchi XSS senza perdita di dati? Nota: non posso aumentare la dimensione della casella di testo in modo dinamico.

    
posta Pragna 05.07.2016 - 22:43
fonte

1 risposta

0

Suppongo che tu non sia davvero in grado di modificare dinamicamente la casella di testo, ma ti suggerirei caldamente di riesaminare quel fatto in quanto sembra essere il modo più semplice e sicuro per ottenere quello che vuoi.

Non puoi codificare l'output. Non c'è modo di codificare < come qualcos'altro senza che sia più un personaggio.

Ciò significa che è necessario applicare un filtro che filtra gli attacchi XSS. Questo è un compito piuttosto difficile, quindi suggerirei di utilizzare una libreria esistente per questo, come htmlpurifier per PHP o WHASP HTML Sanitizer per Java.

Nota che il filtraggio è una forma di protezione più debole rispetto alla codifica in uscita e ovviamente modificherà o rifiuterà alcuni input dell'utente, che potrebbero essere o meno accettabili.

    
risposta data 05.07.2016 - 23:07
fonte

Leggi altre domande sui tag