Jak wszyscy wiemy, ataki XSS są niebezpieczne i bardzo łatwe do odparcia . Różne frameworki ułatwiają kodowanie HTML, podobnie jak ASP.NET MVC:
<%= Html.Encode("string"); %>
Ale co się stanie, gdy klient wymaga, aby mógł przesyłać swoje treści bezpośrednio z dokumentu Microsoft Word?
Oto scenariusz: ludzie mogą kopiować i wklejać treść ze słowa Microsoft do edytora WYSIWYG (w tym przypadku tinyMCE ), a następnie informacje te są publikowane na stronie internetowej.
Witryna jest publiczna, ale tylko członkowie tej organizacji będą mieli dostęp do publikowania informacji na stronie internetowej.
Jak bezpiecznie obsługiwać te wymagania? Obecnie nie jest sprawdzane, co publikuje klient (ponieważ tylko „zaufani” użytkownicy mogą publikować), ale nie jestem z tego szczególnie zadowolony i chciałbym go jeszcze bardziej zablokować w przypadku zhakowania konta.
Jedyną znaną mi konceptualną metodą, która spełnia te wymagania, jest umieszczenie tagów HTML na białej liście i przepuszczanie ich . Czy jest inny sposób? Jeśli nie, jaki jest bezpieczny sposób, aby umożliwić użytkownikowi przechowywanie danych wejściowych w bazie danych w dowolnej formie, ale tylko wyświetlanie ich poprawnie zakodowanych i pozbawionych złych znaczników?