strip_tags
не обязательно приводит к безопасному содержанию. strip_tags
с последующим htmlentities
будет безопасным, поскольку все, что закодировано в HTML, безопасно, но в этом нет никакого смысла.
Либо пользователь вводит простой текст, в этом случае его следует выводить с помощью htmlspecialchars
(предпочтительнее htmlentities
), либо он вводит разметку HTML, и в этом случае вам необходимо правильно его проанализировать, исправив сломанная разметка и удаление элементов / атрибутов, которые не находятся в безопасном белом списке.
Если это то, что вам нужно, используйте для этого существующую библиотеку (например, htmlpurifier ). Потому что это не тривиальная задача, и если вы ошибетесь, вы сами дадите дыры в безопасности XSS.