Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность 
:(
    Опции темы
theworldcreator
Дата 22.12.2008, 21:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Я считаю свои приложения достаточно безопасными. Но задумался, нет ли чего нетривиального...
Насколько достаточно следующих моих действий, которые я совершаю всегда и уже на автомате:
Любые данные пользователя следует проверять(разумеется, в числе них кукисы, хедеры, пришедшие от браузера, и тому подобные вещи, которые некоторые почему-то считают достоверными)
Любые пользовательские данные(кроме числовых), которые участвуют в SQL запросах, обрабатываю следующей функцией(взята с http://ru2.php.net/mysql_real_escape_string и немножко доработана, так как в кавычки текстовые данные привык заключать сам, а числовые привык изначально приводить к типу int):
Код

function quote_smart($value)
{
    // если magic_quotes_gpc включена - используем stripslashes
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
     return mysql_real_escape_string($value);
}

Уместно использую htmlspecialchars(), считая что это полностью защитит меня от XSS(не считая соц. инженерии, конечно, когда кто то убеждает пользователя например вбить что нибудь страшное в адресную строку)

Так же некоторые, возможно бесполезные, но вошедшие в привычку, тонкости, как то например хранить конфигурационные файлы выше public папки. Пароли храню в MD5(в связи с развитием RainBow Tables смотрю в сторону хранения для каждой записи уникальной соли, дабы радужные таблицы пришлось генерировать для каждой строки, что грубо говоря невозможно, но пока не применял на деле).
регистр глобалс офф, разумеется, хотя уже вошло в привычку изначально объявлять переменные как 0, если предполагается что изначально они false

Вот, если что то, что я упустил?


С уважением, Александр
PM MAIL WWW ICQ   Вверх
bars80080
Дата 22.12.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а что насчёт с загрузкой файлов? какие-то обработки есть?

помнится была долго мусировавшаяся тема по XSS внедрённое в само изображение. его ведь htmlspecialchars не достанет
или там какие-то уже встроенные механизмы рубки?

сам не знаю, но интересно
PM MAIL WWW   Вверх
realPROme
Дата 22.12.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 20.12.2006

Репутация: нет
Всего: нет



Цитата(bars80080 @  22.12.2008,  21:24 Найти цитируемый пост)
помнится была долго мусировавшаяся тема по XSS внедрённое в само изображение. его ведь htmlspecialchars не достанет

насколько я понимаю, это имеет смысл, когда на сайте существуют, к примеру некие модули, для которых можно загружать данные... так в особо злостных случаях в картинку можно и php-код вставить, который потом на сервере будет исполняться)))

а просто вставить в картинку какой-то код, что эта картинка, будучи загруженной (на нормально отконфигурированном сервере) смогла принести хоть какой-то вред, такого я не слышал... имхо, анриал)))
PM MAIL   Вверх
theworldcreator
Дата 22.12.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



bars80080, спасибо за наводку
Раньше не задумывался, сейчас почитал. Насколько я понял, во первых это работает только в IE. Во вторых полная защита достигается поиском ключевых слов для всех вариантов проведения xss. Не поверите, достаточно поискать следующие теги:
html
head
body
script
javascipt(на случай чего нибудь такого src = "javascript:alert('XSS');")

Так же придется подумать о кодировках, ведь если файл в какой то нетривиальной кодировке и IE об этом каким нибудь образом узнает, IE его прочитает как задумывалось хакером, а фильтр ошибочно. Но для этого достаточно фильтровать прямые указания кодировки: <meta http-equiv="Content-Type" content="text/html; charset="UTF-7"> (META в PNG есть всегда, исключать в принципе этот тег нельзя)
К слову сказать эксплойт сработает только если открыть изображение, а не страницу его содержащую :)

Так же говорилось о функциях PHP работы с изображениями(например растянуть, а потом сжать), вроде как это дает 100 % гарантию защиты, но не стоит слепо доверять этому, надо будет как нибудь потестировать.

Слышал про PHP в картинке, но ИМХО на бред похоже, тут то просто IE все что видит считает HTML разметкой(а внутренности картинки текстом для пользователя), а применять eval() к изображению никто не собирается :)

А есть ли еще какие нибудь известные уязвимости в остальных типах заливаемых файлов?
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.