Mam typową sytuację, w której mam dane wejściowe użytkownika, które używają podzbioru HTML (dane wejściowe z tinyMCE). Potrzebuję ochrony po stronie serwera przed atakami XSS i szukam sprawdzonego narzędzia, za pomocą którego ludzie to robią. Po stronie PHP widzę wiele bibliotek, takich jak HTMLPurifier, które wykonują zadanie, ale nie mogę znaleźć niczego w .NET.Biała lista HTML .NET HTML (skrypty anty-xss/Cross Site)
Szukam zasadniczo dla biblioteki do filtrowania w dół do białej listy znaczników, atrybutów tych tagów, i robi to, co trzeba z „trudnym” atrybuty jak: href i IMG: src
I Widziałem post Jeffa Atwooda na http://refactormycode.com/codes/333-sanitize-html, ale nie wiem, jak to jest aktualne. Czy ma to jakikolwiek wpływ na to, czego obecnie używa strona? I w żadnym wypadku nie jestem pewien, czy nie czuję się dobrze z tą strategią, próbując wyreformować poprawne dane wejściowe.
Ten blogu określa się, co wydaje się być o wiele bardziej przekonujące strategia:
Metoda ta jest właściwie przeanalizować HTML do DOM, potwierdzić, że potem odbudować prawidłową HTML z niego. Jeśli parsowanie HTML może obsługiwać źle sformułowany HTML, to świetnie. Jeśli nie, to nic wielkiego - mogę wymagać dobrze sformułowanego HTML, ponieważ użytkownicy powinni używać edytora tinyMCE. W obu przypadkach przepisuję to, co wiem, że jest bezpieczny, dobrze sformułowany kod HTML.
Problem polega na tym, że jest to tylko opis, bez linku do żadnej biblioteki, która faktycznie wykonuje ten algorytm.
Czy taka biblioteka istnieje? Jeśli nie, to jaki byłby dobry mechanizm analizowania HTML .NET? A jakie wyrażenia regularne powinny być używane do dodatkowej weryfikacji a: href, img: src? Czy brakuje tu czegoś ważnego?
Nie chcę ponownie wdrażać koła buggy tutaj. Z pewnością jest kilka powszechnie używanych bibliotek. Jakieś pomysły?
Paczka agility jest tym, z czego skorzystałem. – Clyde