2009-12-11 7 views

risposta

8

Sarà necessario specificare esplicitamente la codifica corretta (per esempio: utf-8), Chris ha avuto un post su come iniettare codice anche chiamando htmlentities senza codifica appropriata.

http://shiflett.org/blog/2005/dec/google-xss-example

+0

Grazie mille che è esattamente il tipo di prova che stavo cercando :) Devo studiare i problemi di codifica. Conosce qualche buona documentazione a riguardo? – fatmatto

+1

Ti incoraggio a leggere un esempio reale di Gmail contact xss e, leggendo l'exploit, che è scaricabile nel post sottostante, speriamo di darti qualche idea su come scrivere un codice sicuro: http://uneasysilence.com/ archivio/2007/01/9025/ E qui è un cheat sheet che potresti trovare utile: http://openmya.hacker.jp/hasegawa/security/utf7cs.html –

+0

Grazie mille: D – fatmatto

4

non è a prova di proiettile, non ha mai consente di risparmiare il 100%. È necessario ricordare che quando si tratta di sicurezza, lo sviluppatore ne è responsabile. Le lingue offrono una buona quantità di funzioni di sicurezza e tanto più spetta agli sviluppatori sapere come proteggono il loro sito sia che utilizzino l'approccio di whitelist o l'approccio di lista nera. Se htmlentities fosse tutto, framework come codeigniter, kohana e altri non avrebbero avuto le loro grandi funzioni di sicurezza.

La cosa più importante è sanificare e filtrare qualsiasi input proveniente dall'utente.

0

No, funzioni come htmlspecialchars e htmlentities non proteggono da tutti i casi di Cross-Site Scripting.

Casi in cui queste funzioni non aiuterà sono:

Soprattutto quest'ultimo motivo è spesso mancato. Esistono molti esempi nello OWASP’s XSS Prevention Cheat Sheet per i casi in cui può verificarsi un'iniezione in un documento HTML. Ma non tutti richiedono uno dei caratteri speciali HTML per iniettare ed eseguire il codice JavaScript.

Problemi correlati