Чтобы не было XSS-инъекций, нужно использовать strip_tags(), htmlspecialchars(), htmlentities() при выводе пользовательского ввода. Думаю что лучше использовать strip_tags() и\или htmlentities().
Если этот вывод читается из базы данных, то сначала данные должны быть записаны в базу данных и тут появляются вопросы:
Что и в какой последовательности применять к данным которые буду писаться в базу данных?
2.1 Об stmt-запросах я знаю и понимаю https://www.php.net/manual/ru/mysqli.quickstart.prepared-statements.php
2.2 Хочу узнать примерные варианты порядка обработки данных перед сохранением в таблицу.
2.2.1 Сначала stip_tags() и\или htmlentities() -> (если нужно сохранить какое-то html форматирование в безопасном режиме)
2.2.2 потом mysqli_real_escape_string() - ?
2.2.3 Замена % и _ ( $more_escaped = addcslashes($escaped, '%_'); )
2.2.4 "теги", типа [b][code][i] [url] использовать для обработки ПЕРЕД выводом данных.
- В сети была замечательная статья о sql-инъекциях при помощи\на основе многобайтных кодировок. Кто что знает об этом способе sql-инъекций?
Да вот еще что, одинарных кавычек два типа:
` и '
какая-то из них не экранируется, нужно проверять?
Если не экранируется, то нужно экранировать отдельно (так как с _ и %)?