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

Wicked

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

А по поводу того, что я не понял о чем ты...
Я подумал лишь об этом варианте, который ты мог иметь в виду (среди многих других):
ты могу тверждать, что если ini_get('magic_quotes_sybase') == 1, то оно каким=то способом заставляет врать ini_get('magic_quotes_gpc').
А это неверно.

-~{}~ 07.01.05 23:33:

Originally posted by Фанат
Wicked
не надо с ним дискутировать...
Ты запрещаешь? :)
 

Фанат

oncle terrible
Команда форума
какой ты нервный.
и скучный.
Но, хоть не дурак - и то радость. редкая.
 

Wicked

Новичок
и я стану таким как ты? :)

что касается топика, пора бы ставить точку )

Ситуация такова:

1) magic_quotes_sybase в любом случае определяет способ работы addslashes() и stripslahses().
magic_quotes_sybase = off
' " \ -> addslashes() -> \' \" \\ -> stripslashes() -> ' " \
magic_quotes_sybase = on
' " \ -> addslashes() -> '' " \ -> stripslashes() -> ' " \

2) если magic_quotes_gpc = on, то ко всем переменным, пришедшим из GET, POST, COOKIE прменяется addslases() (в том виде, как его определяет magic_quotes_sybase)

Выводы (по моему мнению):

1) при передаче переменных например в MySQL-запросы, их необходимо эскейпить именно слэшами. Для этого наибольшем образом пригодны mysql_escape_string() и mysql_real_escape_string() (т.к. addslahses() может не оправдать свое название %)).

2) если magic_quotes_gpc = on, все переменные пришедшие из GPC нужно stripslash'ить, чтобы добиться нормальной работы в подобных случаях:
PHP:
if ($_GET["var"] == "'") { ... } // если скрипт был запущен с [COLOR=red]?var='[/COLOR] , выполнение этого кода в таком варианте все равно зависит от настроек PHP
 

Фанат

oncle terrible
Команда форума
ты это все рассказал еще в прошлом топике.
Не надоело пережевывать?
До кого в принципе доходит - уже дошло.
До большинства все равно не дойдет.

В принципе, фиксер прав. его поправка - самая лучшая.
теоретически, ты во всем прав и мудр. Возьми с полки 20 пирожков.
В реальности твои изыскания не стоят ломаного гроша.

я стану таким как ты?
нет, просто поумнеешь.
 

Wicked

Новичок
Фанат, я тя абажаю %)

Я натыкался на случаи, когда приходилось запускать сайты именно в условиях magic_quotes_gpc = on, magic_quotes_sybase=on, поэтому мои методы несколько расходятся с методами фиксера :)
 

Bred Vilchec

Новичок
Wicked
ранее я уже предлагал вариант максимальной синхронизации... Что-то мне кажется, что найти универсальный простой способ не удастся.
Фанат
да нет, ничего, я не кусаюсь.

-~{}~ 08.01.05 10:15:

Wicked
и что, нельзя было вырубить эту муть htaccess' ом?
 

Wicked

Новичок
Originally posted by Bred Vilchec
Wicked
ранее я уже предлагал вариант максимальной синхронизации... Что-то мне кажется, что найти универсальный простой способ не удастся.]
Я не понял, чем тебя не устраивают ini_get("magic_quotes_gpc"), ini_get("magic_quotes_sybase") ? Имхо они все таки дают более достоверную информацию, причем real-time.
Originally posted by Bred Vilchec
Wicked
и что, нельзя было вырубить эту муть htaccess' ом? [/B]
Не получилось...
 

Bred Vilchec

Новичок
Wicked
всем устраивает. Я уже описал такой способ ранее, смотри на первой странице, однако, народ сказал, "що не катит".:)

-~{}~ 08.01.05 11:30:

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

Yurik

/dev/null
абсолютно не завися от причуд хостера?
SiMM - PHP as CGI это не причуда хостера, это довольно распространенное явление которое набирает обороты ("Dual Xeon with HT" в этом помогают) и мало какой хостер умеет настроить чтобы suExec читал пользовательский php.ini из Document_Root

Так что вариант Bred Vilchec всё-таки лучше

[дальше я ступил]
 

Wicked

Новичок
Yurik, с чего вдруг необратимая? :\
ты тестировал stripslashes при разных значениях magic_quotes_sybase?
 

SiMM

Новичок
> SiMM - PHP as CGI это не причуда хостера, это довольно распространенное явление которое набирает обороты ("Dual Xeon with HT" в этом помогают) и мало какой хостер умеет настроить чтобы suExec читал пользовательский php.ini из Document_Root

При чём здесь CGI и какой-то php.ini? Перечитайте ещё раз пост внимательно.
 

Yurik

/dev/null
SiMM
ну и не проще ли прописать то, что надо в .htaccess'е, ... , абсолютно не завися от причуд хостера?
не проще потому что mod_php постепенно вытесняется php в режиме CGI (секурити выходит на первый план потому что производительность физических серверов выросла) и соответственно php директивы в .htaccess вызовут 500 error. В случае работы PHP как CGI конфигурирование виртуал хоста юзера предполагается из файла php.ini который лежит либо в /cgi-bin/ либо в корневой директории VirtualHost и разрешенные директивы можно писать туда. Те же register_globals, magic_quotes_* и т.д. Поэтому для большей кросплатформенности нужно делать так:

таскать везде 2 файла

1. .htaccess
=====
<IfDefine HAVE_PHP>
php_flag magic_quotes_gpc off
php_flag magic_quotes_sybase off
php_flag register_globals off
</IfDefine>

2. php.ini
=====
magic_quotes_gpc=off
magic_quotes_sybase=off
register_globals=off


В случае mod_php сработает первый, в случае CGI через suExec - сработает второй.
 

SiMM

Новичок
Yurik, слова-то зачем из контента вырезать?
и не проще ли прописать то, что надо в .htaccess'е, + в скрипте "убрать" всё лишнее и сделать нужные ini_set'ы, абсолютно не завися от причуд хостера?
 

Yurik

/dev/null
Ну я не сказал быстро, я сказал постепенно, 2 хостинга с какими я имел дело когда они ещё были на mod_php перешли на CGI, а у меня в .htaccess тогда не было <IfDefine HAVE_PHP> ...
 

Wicked

Новичок
Yurik wrote:
> ... 2 хостинга с какими я имел дело ...

нерепрезентативная выборка :)
 

Фанат

oncle terrible
Команда форума
Yurik, тебе никогда не приходило в голову, что для развития можно двигаться не только назад, но и вперед?
а о более прогрессивных способах хостинга, чем СGI, ты когда-нибудь слышал?
 
Сверху