Перейти к содержимому



Защита от XSS

#1 r0mZet

r0mZet
  • Модератор
  • 1 072 сообщений
  • Репутация: 152
0

Отправлено 28 Октябрь 2013 - 11:47

как можно защитить самописный сайт на PHP от XSS ?
какие есть рецепты? =)

 

 

  • 0

Копирую любой Landing Page. Сходство 100%, рабочие JS и РНР-формы. 



robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Защита от накруток.
  2. Обязательные элементы обработки данных для безопасности
  3. Безопасность блога на CMS WordPress
  4. Как полностью обезопасить блог на WordPress?
  5. Настройки Htaccess для защиты сайта от взлома

#2 alex159

alex159
  • Неактивные
  • 492 сообщений
  • Репутация: 32

Отправлено 28 Октябрь 2013 - 11:54

как можно защитить самописный сайт на PHP от XSS ?
какие есть рецепты? =)

Самый просто способ это "нападать" на свой же сайт и найти уязвимости.

от XSS есть не мало функции
strip_tags() – вырезает теги HTML и PHP из строки.
htmlspecialchars() — конвертирует только специальные символы (‘&’, ‘»‘, »’, ‘<’ и ‘>’) в HTML сущности (‘&’, ‘"’…). Используется для фильтрации вводимых пользователем данных для защиты от XSS-атак.
htmlentities() – конвертирует все символы в строке (кроме букв) в мнемоники HTML. Используется для защиты от XSS, являясь более гибким аналогом htmlspecialchars.
stripslashes() – удаляет заэкранированные символы (после преобразования в сущности предыдущими функциями их незачем экранировать)
В коде лучше сразу делать защиту, проверять все данные которые вводятся, у беря пробелы и спец символы.

Еще можно и нужно делать фильтрацию всех GET и POST запросов.
Вот есть такая простая функция
function defender_xss($arr){
$filter = array("<", ">","="," (",")",";","/");
	 foreach($arr as $num=>$xss){
	    $arr[$num]=str_replace ($filter, "|", $xss);
	 }
	   return $arr;
}

  • 1

#3 r0mZet

r0mZet
    Topic Starter
  • Модератор
  • 1 072 сообщений
  • Репутация: 152

Отправлено 28 Октябрь 2013 - 11:55

Не могли бы Вы с этого места поподробней? Куда и как нужно все это прописать?
  • 0

Копирую любой Landing Page. Сходство 100%, рабочие JS и РНР-формы. 



#4 alex159

alex159
  • Неактивные
  • 492 сообщений
  • Репутация: 32

Отправлено 28 Октябрь 2013 - 12:33

Не могли бы Вы с этого места поподробней? Куда и как нужно все это прописать?

Я привел примеры функций и самописную функцию.

Так, открываем по очереди все файлы и смотрим. Где происходит вывод, ввод в базу данных или что то еще.(думаю кроме админ панели).
И перед тем как работать с данными которые получили,
фильтруем их к примеру через эту функцию
$you = strip_tags($you); // Вместо $you ваша переменная которая содержит какие либо данные которые могу идти с не доверенных источников.
К примеру в каких то формах на сайте перед тем как дать их значения обработчику провести через эту функцию
function defender_xss($arr){
$filter = array("<", ">","="," (",")",";","/");
		 foreach($arr as $num=>$xss){
		    $arr[$num]=str_replace ($filter, "|", $xss);
		 }
		   return $arr;
}
$_REQUEST=defender_xss($_REQUEST); // Эта строка проверить все GET и POST запросы на содержание следующих символов "<", ">","="," (",")",";","/"

Примеру форма входа в админку
Фильтруется, а потом передается обработчику.
$login = trim($login);
$password = trim($password);
// Далее передаем обработчику
Можно для надежности добавить еще пару проверок.
  • 0

#5 r0mZet

r0mZet
    Topic Starter
  • Модератор
  • 1 072 сообщений
  • Репутация: 152

Отправлено 28 Октябрь 2013 - 12:38

Спасибо! Весьма подробно расписано
  • 0

Копирую любой Landing Page. Сходство 100%, рабочие JS и РНР-формы. 




Оформление форума – IPBSkins.ru