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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опасные cookies 
V
    Опции темы
Wolf1994
Дата 30.12.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

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



Попробовал поставить функцией setcookie cookie с апострофом - '. При чтении кука оказалась забэкслешенной. Попробовал поставить такую куку в редакторе cookies в FireFox 3 - схожий результат. Возможно ли, в принципе, поставить в куку "нормальный" апостроф? Возможно, есть какие-то "хакерские" браузеры, которые делают это?
PM MAIL WWW   Вверх
Sunvas
Дата 30.12.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(Wolf1994 @  30.12.2008,  23:01 Найти цитируемый пост)
При чтении кука оказалась забэкслешенной.

Возможно это сервер слеширует все входящие данные? Глянь оригиналы заголовков, которые посылает браузер - тогда точно будешь знать, где проблема. Да, и функцию stripslashes никто не отменял.

Добавлено через 1 минуту и 29 секунд
Попробуй вот что:
Код

if(get_magic_quotes_gpc())
{
    $cookie=stripslashes($cookie);
}



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Wolf1994
Дата 31.12.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

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



Заголовки посылаемые браузером читать не умею, только посылаемые документом. Буду благодарен за объяснение, как это сделать.

Если get_magic_quotes_gpc() возвращает true, значит ли это что сервер бэкслеширует ВСЕ переменные, приходящие от пользователя? И значит ли это также, что SQL-инъекция на основе данных, полученных от пользователя, невозможна?
PM MAIL WWW   Вверх
theworldcreator
Дата 31.12.2008, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Live HTTP Headers, полезная штука, показывает входящие/исходящие заголовки, ИМХО очень нужна тому, кто хочет понять суть протокола HTTP.
Цитата

Если get_magic_quotes_gpc() возвращает true, значит ли это что сервер бэкслеширует ВСЕ переменные, приходящие от пользователя?

Да.
SQL инъекция все равно возможна. Даже не забивай себе голову как, просто пользуйся функцией, которая точно тебя от инъекций обезопасит, ко всем входящим строковым данным, mysql_real_escape_string.

Это сообщение отредактировал(а) theworldcreator - 31.12.2008, 02:09
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 31.12.2008, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(theworldcreator @  31.12.2008,  02:05 Найти цитируемый пост)
которая точно тебя от инъекций обезопасит, ко всем входящим строковым данным, mysql_real_escape_string.

А вдруг у человека другая БД Postgres та же..  smile 

Вообще включенный magic_quotes_gpc === зло. Во всех популярых движках, если слеширование включено, оно прибивается. Можно попробовать отключить его при помощи .htaccess строкой:

Код

php_flag magic_quotes_gpc off


Но, думаю, проблему уже нашли smile


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Wolf1994
Дата 31.12.2008, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

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



theworldcreator, спасибо за ссылку.

Этой функцией я пользуюсь, но забыл поставить её на данные, получаемые с кук. Теперь ломаю голову, возможен ли был взлом при таком запросе:

Код

 $sql="SELECT * FROM `members` WHERE `name`='".$_COOKIE [$cmember]."' AND `password`='".$_COOKIE [$cpassword]."'";


Попробовал взломать его, поставив на member:
Wolf' OR (`id`='305
и password:
test') OR `id`='1
В результате должен был получится запрос:
Код

SELECT * FROM `members` WHERE `name`='Wolf' OR (`id`='305' AND `password`='test') OR `id`='1'

но апострофы экранировались и в результате никакой инъекции не получилось.

Если есть хоть малейшая возможность взломать такой запрос, прошу подсказать, как это возможно.
PM MAIL WWW   Вверх
Sunvas
Дата 31.12.2008, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(Wolf1994 @  31.12.2008,  02:22 Найти цитируемый пост)
но апострофы экранировались и в результате никакой инъекции не получилось.

А ты попробуй послать: \'


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Wolf1994
Дата 31.12.2008, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

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



Пробовал, в результате получался двойной "экран": \\\'
PM MAIL WWW   Вверх
theworldcreator
Дата 31.12.2008, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В таком случае, насколько я знаю, взлом невозможен, проблемы обычно идут от неиспользования кавычек в оформление непроверенных пользовательских данных. На хакеры - народ изощренный. Во всяком случае они уделят больше времени придумыванию способы взлома, чем мы, так что лучше обезопасится.

Добавлено через 6 минут и 21 секунду
Кстати вместо
Код

`id` = '305'

проще использовать
Код

1 = '0'

а вместо
Код

`id` = '1'

правильней
Код

`id` = 1

(если `id` - столбец числового типа данных)
smile

Добавлено через 8 минут и 59 секунд
P.S. Как правильно заметил Sunvas все мои знания - знания о СУБД MySQL, об остальных я не знаю ничего, так как не использовал, и говорю предполагая что у вас именно она.
PM MAIL WWW ICQ   Вверх
Wolf1994
Дата 31.12.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

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



theworldcreator, Sunvas, спасибо за ответы. Вопрос решён.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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