🤔 Почему это важно: Многие забывают, что парсинг HTML на бекенде — сложный процесс, и даже стандартные парсеры популярных языков программирования не реализованы полностью.
🐍 Пример на Python:
pythonfrom html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print(f"{tag}")
for attr in attrs:
print(f" ->{attr[0]}: {attr[1]}")
def handle_endtag(self, tag):
pass
def handle_startendtag(self, tag, attrs):
print(f"{tag}")
for attr in attrs:
print(f" ->{attr[0]}: {attr[1]}")
def handle_data(self, data):
pass
html_string = input()
parser = MyHTMLParser()
parser.feed(html_string)
🛑 Проблема: Стандартная библиотека Python не учитывает, что для тегов "iframe", "noembed", "noframes", "noscript", "plaintext", "title", "textarea", "xmp" содержимое не обрабатывается как HTML теги.
💡 Пример использования: При вводе:
html<textarea><a href="x></textarea><img src=x onerror=alert()//">
Результат парсинга не учитывает теги "textarea" и "a" полностью, что может привести к недооценке угрозы Server Side XSS.
🚧 Совет: Не забывайте о подобных особенностях при разработке и эксплуатации Server Side XSS. Будьте внимательны к деталям и используйте надежные инструменты для парсинга HTML.