#!/usr/bin/perl -T use strict; use warnings; use CGI qw(:standard -utf8); use HTML::Entities qw(encode_entities); # основний модуль для екранування use utf8; # ──────────────────────────────────────────────── # Контекстно-залежні функції екранування (OWASP-рекомендації) # ──────────────────────────────────────────────── # 1. Для тексту між тегами (body, div, p, span тощо) sub html_text_escape { my $str = shift // ''; return encode_entities($str, '<>&"\''); } # 2. Для значень атрибутів HTML (value="", title="", alt="" тощо) sub html_attr_escape { my $str = shift // ''; # Спочатку екрануємо ", бо це критичний символ для атрибутів $str =~ s/"/"/g; return encode_entities($str, '<>&"\''); } # 3. Для JavaScript-контексту (якщо виводите в
HTML