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



Защита от XSS

#1

Поделиться сообщением #1



r0mZet

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

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

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

 

 

  • 0

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



robot

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

#2

Поделиться сообщением #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

Поделиться сообщением #3



r0mZet

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

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

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

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



#4

Поделиться сообщением #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

Поделиться сообщением #5



r0mZet

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

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

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

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




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