Міжсайтовий скриптинг (XSS) є одним з найбільш поширених вразливостей в веб-додатках. Однак захиститися від цієї атаки досить просто - достатньо змінити символи <.> і . які безпосередньо впливають на HTML-сторінку. Якщо ж потрібно передати атрибути тегів, потрібно екранувати лапки: "і '.
У PHP це можна зробити за допомогою функції htmlspecialchars. яка кодує наведені вище символи (для перетворення лапок слід використовувати атрибут ENT_QUOTES):
Функція htmlspecialchars () перетворює <в < и> в gt ;. лапки стає ". а одинарна # '. Тим самим виключається можливість впровадження скриптів або посилань на сторінку, а також зміна структури HTML-коду.
Слід зазначити, що у сторінки повинна бути вказана кодування в Content-Type, інакше може використовуватися інший набір символів, які мають інші значення (наприклад, UTF-7).
Функція htmlentities ідентична функції htmlspecialchars. але вона замінює всі можливі HTML-суті. Вона може бути використана зі старими кодуваннями, але з Unicode її зазвичай не використовують.
Переклади документів з іноземної мови на російську в основному потрібні приватним особам. Це можуть бути ділові документи, листи та інші. Ви можете замовити переклад азербайджанської мови на російську в компанії «Майстер Перекладу». Вигідні ціни та короткі терміни переведення вас неодмінно порадують і ви прийдете туди знову!
автоматичне екранування
Якщо захист від XSS настільки проста, то чому ж міжсайтовий скриптинг є такий распространіми вразливістю? Причина в тому, що програмісти іноді забувають використовувати функції екранування символів. І так буває на багатьох відомих сайтах.
Звичайно краще було б автоматизувати процес екранування HTML-коду. Більшість сучасних CMS пропонують автоматичне перетворення друкованих даних. Наприклад, в Smarty є змінна $ default_modifiers. в яку можна додати фільтри для екранування коду. Чистий PHP такої можливості не представляє.
Nette Latte фреймворк
Nette Latte - це шаблонизатор автоматичного розпізнавання контекстного змісту:
Даний фреймворк дозволяє уникнути багатьох проблем з обробкою великого і складного коду:
Уникнути XSS атак досить просто, достатньо не забувати використовувати htmlspecialchars (). Але якщо це складно для вас, можете використовувати системи автоматичного фільтрація даних, наприклад Nette Latte. Ці методи повинні з великою ймовірністю виключити можливості XSS.