Я хотел бы показать текст с исполнением HTML (formated) в браузере, поэтому его будет легко читать, но без выполнения JavaScript. Это большой текст, и очень сложно читать между тегами HTML. Итак, выполните HTML, но не JavaScript.Как остановить любые последующие события JavaScript, чтобы избежать XSS
Что я сделал: я загрузил этот текст в , так что я могу иметь полный контроль, и я попытался показать текст, как это:
<script>
throw new Error('This is just to abort javascript');
</script>
<?php echo $text ?>
<script>
throw new Error('This is just to abort javascript');
</script>
консоль не отображает ошибку, но даже в этом случае, если у меня есть $text = '<script>alert(1)</script>';
, этот скрипт будет выполнен в любом случае.
Другой пример XSS, которого я бы хотел избежать. $text = '<a href="#" onmouseover="alert(1)">this is a fake url</a>';
В принципе, отмените выполнение JavaScript со страницы.
Заранее благодарен!
Вы хотите полностью удалить любые скрипты JS в '$ text', или вы хотите, чтобы они отображались как текст в iframe без выполнения? – blcook223
Вы не можете отключить выполнение javascript только для определенной области кода. Только для всей страницы (а также только вручную в настройках вашего браузера). Я боюсь, что вы начнете обходить сценарии фильтрации или избежать этого. – Benjamin
Еще одна уязвимость xss, о которой нужно знать, которая может нарушить планы фильтрации всего, что не является «href» ... 'I'm totally legit, click me.' – samlev