kazaner_com » 2008.03.09 12:55

Все наверно знают про magic_quotes_gpc, тем более те. у кого есть на сайтах чаты типа бодр и т.п.
У меня просьба для тех кто знает про эти магиские скобки, подскажите где их надо писать и как правильно в .htaccess им можно поставить. И для чего они вообще нужны? Благодарю!

Admin » 2008.03.09 13:22

при включенной директиве, будут автоматически экранироваться следующие символы - " ' \ NULL (NULL - нулевой байт) т.е. к ним добавится обратный слеш. Это нужно для безопасности при работе с БД. НО!!!
В корне не правильно обрабатывать эти символы через эту директиву, более того, в PHP6 она будет устранена. Собственно из-за нее во многом репутация PHP сильно пострадала. Я имею ввиду безопасность этого интерпретатора =). Следует обрабатывать  перечисленные символы непосредстренно в коде, с помощью функции mysql_escape_string. Если же нет возможности обработать все входящие данные, которые заносятся в БД, с помоью этой функции, то как компросисс, подчеркиваю, как компромисс, можно включить magic_quotes_gpc в .htaccess  Делается это следующим образом.

Код:

1
php_flag magic_quotes_gpc On
kazaner_com » 2008.03.09 13:33

А не подскажешь, может есть другие варианты, вместо прописывания php_flag magic_quotes_gpc On именно в .htaccess? Может можно по другому как-то?

Admin » 2008.03.09 13:44

в php.ini еще. или как я сказал обрабатывать все через mysql_escape_string

kazaner_com » 2008.03.09 13:47

Вот так у меня в php.ini

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; This directive is deprecated. Use variables_order instead.
gpc_order = "GPC"
 
; Magic quotes
;
 
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
 
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
 
; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off
 
; Automatically add files before or after any PHP document.
auto_prepend_file =
auto_append_file =

я так понял не все скобки включены, может их тоже вкл?

Admin » 2008.03.09 13:54

http://php.su/functions/?cat=info
нет, так и должно быть как бы...

magic_quotes_gpc boolean

Устанавливает magic_quotes состояние для GPC (Get/Post/Cookie) операций. Когда magic_quotes включено (on), все ' (одиночные кавычки), " (двойные кавычки), \ (обратные слэши) и нулевые значения (NUL's) записываются с обратной косой чертой автоматически. Если также включено magic_quotes_sybase, одиночная кавычка записывается с дополнительной одиночной кавычкой вместо обратной косой черты.
magic_quotes_runtime boolean

Если magic_quotes_runtime разрешено, большинство функций, которые возвращают данные из любого внешнего источника разной природы, включая базы данных и текстовые файлы, будут иметь кавычки, записанные с обратной косой чертой. Если magic_quotes_sybase также включены, одиночная кавычка записывается с дополнительной одиночной кавычкой вместо обратной косой черты.
magic_quotes_sybase boolean

Если magic_quotes_sybase также разрешено, одиночная кавычка записывается с дополнительной одиночной кавычкой вместо обратной косой черты, если magic_quotes_gpc или magic_quotes_runtime разрешены.

kazaner_com » 2008.03.09 14:08

Короче у хвостинг тупой или что я не пойму сам. Но ника нельзя вкл. эти скобки. Ты говорил как-то можно через mysql_escape_string...

Admin » 2008.03.09 14:09

они у тебя включены!!!!

kazaner_com » 2008.03.09 14:18

а как тогда у меня чат поломали я не пойму, если скобки были включены? один известный админ сказал что надо скобки вкл и все будет ок!

Admin » 2008.03.09 14:19

бло, по твоему это единственная уязвимость??? и все ок точно не будет)

Helqg » 2008.03.09 18:28

Гг. Кстати. Тут почитал. Написано взамен mysql_escape_string использовать mysql_real_escape_string. :)

Admin » 2008.03.10 09:06

Да, наверное. Я просто привык к mysql_escape_string. Надо переучиваться)