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

Сервис обмена электронных валют


Обязательные элементы обработки данных для безопасности

#1 lesli007

lesli007
  • Пользователь
  • 108 сообщений
  • Репутация: -4
0

Отправлено 10 Апрель 2011 - 23:50

Здравствуйте!
На любом сайте мы используем формы для открытого круга лиц. Они несут опасность в себе при включении содержимого в базы данных. Расскажите пожалуйста об обязательных элементах обработки данных форм. Как я понимаю их должно быть сразу несколько. А также поясните пожалуйста понятия самых популярных угроз сайту (SQL инъекции и тд). Заранее спасибо, уважаемые вебмастера!

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 11 Апрель 2011 - 05:40

ищи по запросу SQL инъекция, обсуждалось не раз
например http://www.masterweb...ot-sql-inekcii/
  • 0

#3 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 11 Апрель 2011 - 23:01

lesli007,

Расскажите пожалуйста об обязательных элементах обработки данных форм.

Основные обработки форм:
  • защита от sql-инъекций - экранирование спец. символов, которые могут встретиться в запросе к базе данных и которые могут повлиять на запрос.
  • защита от XSS-атак - удаление основных опасных тегов из кода или же преобразование спец. символов HTML в их эквиваленты (от данного типа атак защититься достаточно тяжело, тут много подводных камней)
    Ухищрений обхода простой защиты много: добавление null-символа, преобразование кода в кодировку UTF-7 и принудительное обращение пользователя с данной кодировкой, встройка XSS в картинку (косяк с IE) и многое другое
От SQL-инъекций защита проста:
function escape_string($string)
{
$string = get_magic_quotes_gpc() ? stripslashes($string) : $string;
return mysql_real_escape_string($string);
}

угроз для сайта может быть много:
  • SQL-инъекции
  • загрузка исполняемого файла и его активация
  • XSS-атаки
  • подмена данных сессий и куков жертвы
  • и т.д.

  • 0

#4 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 11 Апрель 2011 - 23:47

ZiTosS, то есть обработка
$text=escape_string($text);

выдаст на выходе обработанный текст? я правильно понял?
  • 0

#5 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Апрель 2011 - 10:14

lesli007, это защита от SQL-инъекций (желательно передавать в качестве второго параметра в функцию mysql_real_escape_string - соединение с БД).
Простая защита от XSS:
$string = htmlspecialchars($string);
// или
$string = htmlentities($string);

Данные функции по 3 параметра:
  • строка, в которой выполняем преобразования
  • что делать с одинарными и двойными кавычками (преобразовывать или нет)
  • кодировка преобразования

  • 0

#6 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 20 Апрель 2011 - 21:22

попробовал данный способ
function escape_string($string)
{
$string = get_magic_quotes_gpc() ? stripslashes($string) : $string;
return mysql_real_escape_string($string);
}


Результат обработка формы проходит нормально. В базу вносится допустим логин с ковычками. Однако потом массив $_SESSION['login'] содержит \'dfgdfg\' а не 'dfgdfg'. Поэтому куча проблем с запросами к базе данных.
  • 0

#7 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 20 Апрель 2011 - 22:28

lesli007, есть специальные функции для удаления экранирующих слешей, stripslashes например.
А в логинах кавычки не к чему, я бы по регуляркам такой вариант откинул. Данная обработка важна для больших объемов информации, текстов, которые мы затем хотим выводить на страницу.
  • 0


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