Dylemat Codeigniter xss_clean

Wiem, że to pytanie było ciągle zadawane, ale wciąż nie znalazłem idealnej odpowiedzi na moje upodobanie, więc tutaj znowu idzie ...

Czytałem wiele i wiele polaryzujących komentarzy na temat xss_filter CI. Zasadniczo większość mówi, że jest źle. Czy ktoś może wyjaśnić, jak jest źle, a przynajmniej dać 1 najbardziej prawdopodobny scenariusz, w którym można go wykorzystać? Sprawdziłem klasę zabezpieczeń w CI 2.1 i myślę, że jest całkiem niezła, ponieważ nie zezwala na złośliwe łańcuchy, takie jak document.cookie, document.write itp.

Jeśli witryna ma w zasadzie prezentację inną niż HTML, czy bezpieczne jest używanie globalnego xss_filter (lub jeśli NAPRAWDĘ wpływa na wydajność tak bardzo, użyj go na podstawie postu formularza) przed wstawieniem do bazy danych? Czytałem o zaletach i wadach dotyczących tego, czy uciec na wejściu / wyjściu z większością mówi, że powinniśmy uciec tylko na wyjściu. Ale z drugiej strony, dlaczego zezwalać na łańcuchy<a href="javascript:stealCookie()">Click Me</a> być w ogóle zapisywane w bazie danych?

Jedyną rzeczą, która mi się nie podobajavascript: i takie zostaną zamienione na[removed]. Czy mogę rozszerzyć rdzeń bezpieczeństwa CI$_never_allowed_str tablice, dzięki czemu nigdy nie dozwolone ciągi zwracają puste, a nie[removed].

Najlepszym rozsądnym przykładem tego, co przeczytałem, jest to, że użytkownik ma hasłojavascript:123 zostanie wyczyszczony[removed]123 co oznacza ciąg taki jak tendocument.write123 przejdzie również jako hasło użytkownika. Z drugiej strony, jakie jest prawdopodobieństwo, że tak się stanie, a nawet jeśli tak się stanie, nie mogę wyobrazić sobie żadnej realnej szkody, jaką może wyrządzić stronie.

Dzięki

questionAnswers(1)

yourAnswerToTheQuestion