2012-02-18 18 views
5

Znalazłem go wewnątrz „symfonia” aplikacji CMS, to bardzo mały:Czy ta funkcja wystarcza do wykrycia xss?

https://github.com/symphonycms/xssfilter/blob/master/extension.driver.php#L100

I myślał o kradzież i używać go we własnej aplikacji do dezynfekcji ciąg z HTML do wyświetlania. Czy uważasz, że wykonuje dobrą robotę?

ps: Wiem, że istnieje narzędzie do oczyszczania HTML, ale to jest ogromne. Wolę też coś mniej liberalnego, ale nadal chcę, żeby było wydajne.


Testowałem to na podstawie ciągów z tej strony: http://ha.ckers.org/xss.html. Ale jeśli nie powiedzie się "Lokalizator XSS 2". Nie wiem, jak ktokolwiek może użyć tego ciągu do zhakowania strony :)

+1

Mówi: "[...] określi, czy * potencjalnie * [jest] atakiem XSS". – Gumbo

Odpowiedz

7

Nie, nie użyłbym tego. Istnieje wiele różnych ataków, które zależą od kontekstu, w którym dane są wstawiane. Jedna funkcja nie obejmowałaby ich wszystkich. Jeśli przyjrzeć się bliżej, w rzeczywistości są to tylko cztery testy:

// Set the patterns we'll test against 
$patterns = array(
    // Match any attribute starting with "on" or xmlns 
    '#(<[^>]+[\x00-\x20\"\'\/])(on|xmlns)[^>]*>?#iUu', 

    // Match javascript:, livescript:, vbscript: and mocha: protocols 
    '!((java|live|vb)script|mocha):(\w)*!iUu', 
    '#-moz-binding[\x00-\x20]*:#u', 

    // Match style attributes 
    '#(<[^>]+[\x00-\x20\"\'\/])style=[^>]*>?#iUu', 

    // Match unneeded tags 
    '#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>?#i' 
); 

Nic innego nie jest testowane. Oprócz ataków, których testy te nie wykryły (fałszywie pozytywny), może również zgłosić błędnie dane wejściowe jako atak (fałszywie ujemny).

Zamiast więc próbować wykrywać ataki XSS, po prostu upewnij się, że używasz odpowiedniego odkażania.

1

Myślę, że sprawdza się w testowaniu ciągów, przynajmniej tyle mogę powiedzieć na podstawie moich testów.

+1

to nie oczyszcza ich, to jest do testowania tylko – thelolcat

+0

Tak, dokładnie to miałem na myśli. przepraszam za jakiekolwiek zamieszanie. – wadie

Powiązane problemy