SQL инжектирането в повечето случаи лесно се избягва с използването на подготвени оператори.
XSS е по-труден, ако планирате да позволите на потребителите да публикуват HTML маркиране. Трябва да премахнете всички <script>
тагове, всички on*
атрибути от тагове, всички javascript:
URL адреси и дори тогава това вероятно не е напълно гарантирано, за да направи входния HTML безопасен. Има библиотеки като HTMLPurifier
това може да помогне, но стига да разрешите HTML, рискувате да пропуснете нещо злонамерено.
Вместо това можете да използвате библиотека, която прилага нещо като markdown или wikitext. Това силно ограничава това, което потребителите могат да въвеждат, като същевременно им позволява да маркират съдържанието до известна степен. Не е напълно доказателство (хората все още могат просто да публикуват връзки към злонамерени сайтове и се надяват, че потребителите ще щракнат до тях, което някои ще бъдат достатъчно наивни, за да направят), и няма да можете да използвате богат редактор като TinyMCE без някакъв вид на плъгин, но е много по-лесна работа да дезинфекцираш markdown, отколкото да дезинфекцираш HTML.