Farewell наглядным запросам.

neko

tеam neko
нельзя ли кратко для самых тупых
проблема в чем?
в том, что включено magic_quotes_sybase?
только лишь в этом?

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

Фанат

oncle terrible
Команда форума
да, проблема, что при включенных мэджик сибейзах проверка на сэджик квотес гпц врет.

А что непонятного-то?
Что ВСЕ вставляемые в запрос данные должны быть проквочены, а не только пришедшие от юзера?
 

fixxxer

К.О.
Партнер клуба
magic_quotes + magic_sybase при использовании СУБД не воспринимающей такое квотирование -> die("Please disable magic sybase quotes in your php config"). Ибо случай уж слишком редкий, чтобы тут еще париться.
 

Bred Vilchec

Новичок
может я не в тему, но можно ведь пойти обходным путем. Допустим, один скрипт GET-ом передаст другому заранее известную строку, например "Bred's string". Получивший её скрипт сравнивает её со своими шаблонами. То есть, если полученная строка имеет вид "Bred\'s string", значит включены magic_qoutes_gpc, если строка выглядит как "Bred''s string", соответственно, включены magic_quotes_sybase...
а дальше на основании этого может работать плейсхолдерная/слеширующая функция.
 

MuXa247

Новичок
Originally posted by Bred Vilchec
может я не в тему, но можно ведь пойти обходным путем. Допустим, один скрипт GET-ом передаст другому заранее известную строку, например "Bred's string". Получивший её скрипт сравнивает её со своими шаблонами. То есть, если полученная строка имеет вид "Bred\'s string", значит включены magic_qoutes_gpc, если строка выглядит как "Bred''s string", соответственно, включены magic_quotes_sybase...
а дальше на основании этого может работать плейсхолдерная/слеширующая функция.
Bred string! :)
Это можно и из настроек PHP взять! ;) Только, ведь так же придется пользоваться своей функцией для слеширования... :(
 

Bred Vilchec

Новичок
MuXa247
я в курсе. я просто снова постарался максимально не касаться причуд хостера, сделать наверняка. Хорошего универсального способа похоже вобще не существует, или я что-то не понимаю.
Вариант с ini_get уже предлагался ранее.
 

Wicked

Новичок
Originally posted by Bred Vilchec
может я не в тему, но можно ведь пойти обходным путем. Допустим, один скрипт GET-ом передаст другому заранее известную строку, например "Bred's string". Получивший её скрипт сравнивает её со своими шаблонами. То есть, если полученная строка имеет вид "Bred\'s string", значит включены magic_qoutes_gpc, если строка выглядит как "Bred''s string", соответственно, включены magic_quotes_sybase...
а дальше на основании этого может работать плейсхолдерная/слеширующая функция.
Думай что предлагаешь!
Хорошая дырка однако :) Если хакер знает, что на сайте используется такой механизм, он может специально послать уже заэскейпленую строку ("Bred\'s string") на сайт. Если magic_quotes_gpc = off, то передача такой строки заставит думать скрипт, что наоборот magic_quotes_gpc = on. И такой скрипт не заэскейпит остальные переменные, пришедшие из GPC, например, перед вставкой в запрос :)

-~{}~ 07.01.05 16:31:

Originally posted by Фанат
да, проблема, что при включенных мэджик сибейзах проверка на сэджик квотес гпц врет.
Я не уверен... и лень проверять...
Но насколько я помню, magic_quotes_sybase изменяет способ [де]эскейпа с помощью addslashes/stripslases, так что они начинают эскейпить не слэшами, а лишь удвоением одиночных кавычек:
PHP:
addslashes(" ' ") === " '' ";
А что касается авто-эскейпа GPC, то там оно происходит имхо как раз с помощью addslashes...
 

Фанат

oncle terrible
Команда форума
если ты не уверен и тебе лень проверять, а к тому же - не понял, о че речь, то и писать тогда ничего не нужно.
 

Bred Vilchec

Новичок
Wicked
не надо высоких речей, мсье. Эти скрипты использовались бы лишь в инсталялке, только один раз, дыры тут нет. Тем более, хакеру надо уж очень много знать, чтобы воспользоваться этой "дырой".
 

ONK

Пассивист PHPСluba
работа stripslashes не зависит от настроек ПХП
 

SiMM

Новичок
Автор оригинала: ONK
работа stripslashes не зависит от настроек ПХП
Это недоразумение, вернее, неполнота изложенного материала в мануале
PHP:
$x = '\\"\'';
ini_set('magic_quotes_sybase',0);
$y = stripslashes($x);
ini_set('magic_quotes_sybase',1);
var_dump(stripslashes($x)===$y);
 

neko

tеam neko
это все надуманные проблемы
аккурат из разряда "у меня тупой хостер за 3.22 не может настроить нормально апач/пхп, а за 3.99 я уже себе позволить немогу"
 

ONK

Пассивист PHPСluba
SiMM, это не недоразумение а ошибка документирования, которая может иметь неприятные последствия.

И вообще этот "полиморфизм" функций addslashes и stripslashes спорная затея. Их название никак не соответствует такому поведению.
 

Фанат

oncle terrible
Команда форума
ONK
это уже другой вопрос.
а вот предыдущее твое утверждение ложно.
 

Wicked

Новичок
Originally posted by Bred Vilchec
Wicked
не надо высоких речей, мсье. Эти скрипты использовались бы лишь в инсталялке, только один раз, дыры тут нет. Тем более, хакеру надо уж очень много знать, чтобы воспользоваться этой "дырой".
Ну ты предлагаешь продублировать и запомнить информацию, которая хранится в настройках хостинга... А с дублирующейся информацией возникают другие проблемы типа синхронизации %) Вообщем, появится другая дыра, если в настройках запомнится, что magic_quotes_gpc = on, а потом хостер выключит эту опцию в настроках...

Нам же нужен метод, который бы нормально реагировал на всякие изменения и в любой момент действовал соответственно с реальным положением вещей... И польза от "максимального некасания причуд хостера" выйдет как раз боком...
 
Сверху