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


Конкурс "Лучший отзовик"
× Быстрый вопрос
Пользователь месяца
ShowPrint ShowPrint 1-й за Март
Очков активности: 1 152 1 тема, 61 сообщение, 12 баллов репутации
Сайт: ShowPrint.ru
ТОП самых активных за этот месяц
  • Фотография Андрей WPMasterKZ
    #1

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 525 Вне конкурса за определение пользователя месяца

  • Фотография OlgaGetman
    #2

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

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

    Vmir
    Очков активности: 346.5 3 темы, 24 сообщения, 7 баллов репутации

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

    ShowPrint (ShowPrint.ru)
    Очков активности: 204 Вне конкурса за определение пользователя месяца

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

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

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

    maxnik (konovalovpavel.ru)
    Очков активности: 63 1 тема, 18 сообщений, 2 балла репутации

  • Фотография re-search
    #7

    re-search
    Очков активности: 49.5 7 тем, 12 сообщений, 1 балл репутации

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

    Strazh
    Очков активности: 37.5 1 тема, 22 сообщения, 1 балл репутации

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

    pozitron123
    Очков активности: 36 2 темы, 6 сообщений, 2 балла репутации

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

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

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


Защита от XSS

#1 r0mZet

r0mZet
  • Модератор
  • 1 331 сообщений
  • Репутация: 244
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 331 сообщений
  • Репутация: 244

Отправлено 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 331 сообщений
  • Репутация: 244

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

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




Похожие темы

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

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