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


× Быстрый вопрос
Пользователь месяца
Olya23 Olya23 1-й за Июнь
Очков активности: 1 278 3 темы, 133 сообщения, 6 баллов репутации
ТОП самых активных за этот месяц
  • Фотография web-coder
    #1

    web-coder (good-hoster.ru)
    Очков активности: 999 0 тем, 74 сообщения, 9 баллов репутации

  • Фотография Андрей WPMasterKZ
    #2

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 556.5 2 темы, 47 сообщений, 7 баллов репутации

  • Фотография Rodiola
    #3

    Rodiola (rukodelkovo.ru)
    Очков активности: 243 1 тема, 78 сообщений, 2 балла репутации

  • Фотография Megoydagi
    #4

    Megoydagi (24ho.ru)
    Очков активности: 144 4 темы, 12 сообщений, 4 балла репутации

  • Фотография maxnik
    #5

    maxnik (konovalovpavel.ru)
    Очков активности: 112.5 0 тем, 25 сообщений, 3 балла репутации

  • Фотография FIvYUr
    #6

    FIvYUr (moy-evroopt.ru)
    Очков активности: 108 1 тема, 33 сообщения, 2 балла репутации

  • Фотография BLIK
    #7

    BLIK
    Очков активности: 84 Вне конкурса за определение пользователя месяца

  • Фотография lena220678
    #8

    lena220678
    Очков активности: 60 3 темы, 31 сообщение, 1 балл репутации

  • Фотография Olya23
    #9

    Olya23
    Очков активности: 45 Вне конкурса за определение пользователя месяца

  • Фотография katti8907
    #10

    katti8907
    Очков активности: 30 3 темы, 11 сообщений, 1 балл репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 25.06.2019
  • Яндекс выдача: 21.07.2019
Топ 5 участников по репутации


Защита от XSS

#1 r0mZet

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

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

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

 

 

  • 0


#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 372 сообщений
  • Репутация: 254

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

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


#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 372 сообщений
  • Репутация: 254

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

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




Похожие темы

  Название темы Автор Статистика Последнее сообщение

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