W większości przypadków można łatwo uniknąć wstrzyknięcia SQL przy użyciu przygotowanych instrukcji.
XSS jest trudniejszy, jeśli planujesz umożliwić użytkownikom publikowanie znaczników HTML. Musisz usunąć wszystkie <script>
tagi, wszystkie on*
atrybuty z tagów, wszystkie javascript:
adresy URL, a nawet wtedy prawdopodobnie nie gwarantuje się, że wejściowy kod HTML będzie bezpieczny. Istnieją biblioteki takie jak HTMLPurifier
to może pomóc, ale dopóki zezwalasz na HTML, ryzykujesz przepuszczenie czegoś złośliwego.
Możesz zamiast tego użyć biblioteki, która implementuje coś takiego jak przecena lub wikitekst. To poważnie ogranicza dostęp użytkowników, jednocześnie pozwalając im w pewnym stopniu oznaczać treść. Nie jest w pełni odporny (ludzie nadal mogą po prostu publikować linki do złośliwych witryn i mieć nadzieję, że użytkownicy do nich klikną, co niektórzy będą wystarczająco naiwni, aby faktycznie to zrobić), i nie będziesz w stanie korzystać z bogatego edytora, takiego jak TinyMCE bez jakiegoś rodzaju wtyczki, ale oczyszczanie przecen jest znacznie prostsze niż oczyszczanie HTML.