Ваше первое правило замены бесполезно, поскольку его можно легко обойти, используя eval
и кодировку символов (и знак равенства в любом случае не нужен для атак XSS).
Скорее всего, ваше второе правило можно обойти хотя бы в некоторых браузерах, используя такие вещи, как javascript :
или java\script:
.
Короче говоря, это не очень помогает. Если вы хотите показывать простой текст, htmlentities, вероятно, хорошо (есть экзотические атаки, которые используют необычные кодировки символов и глупость браузера для запуска XSS-атак без каких-либо специальных символов, но это работает только в определенных браузерах - кашель IE кашель - в определенных ситуациях). Если вы хотите поместить пользовательский ввод в URL или другие атрибуты, этого не обязательно достаточно.