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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность переменных, register_globals 
:(
    Опции темы
Aliance
Дата 1.9.2005, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Безопасно ли такое применение кода:
Код

$var = $_POST['var'] ? $_POST['var'] : 'test';


Т.е. я назвал переменную так же, как получаемую в массиве от формы, это правильно?
Точнее безопасно?
И лучше избегать такого или нет?
PM MAIL WWW ICQ Skype   Вверх
Mont
Дата 2.9.2005, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Vingrad developer
Сообщений: 274
Регистрация: 13.11.2004
Где: Altay

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



Если REGISTR_GLOBALS - on, и ты перед использованием этой переменной ей ничего не присваиваешь, то проблемы могут быть. А если ты ей присваиваешь какое-либо значение перед тем как испльзовать ее где-либо в скрипте, то ничего страшного ИМХО.


--------------------
"Если однажды Вдруг
Меня не окажется вовсе
в заповедной заветной тарелке
Твоего праведного сновидения
Знай - Неуловимые мстители настигли меня."
© Егор Летов
PM MAIL ICQ   Вверх
-=Ustas=-
Дата 2.9.2005, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Нежелательно использовать имена переменных, которые находяться в массвие _POST или _GET. Потому как будет путаница у разных хостеров.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Alone
Дата 2.9.2005, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

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



-=Ustas=-
Это почему же?


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 2.9.2005, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Да потому, что если REGISTR_GLOBALS - on, тогда объявление такой же переменной будет содержать значение из _POST или _GET. Поэтому имена лучше давать разные, чтоб потом самому не запутаться, но это уже как кому нравиться.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Cheba
Дата 2.9.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Но ведь приведенный выше код делает "мягкую" эмуляцию того самого REGISTR_GLOBALS = on. Только он еще и присваивает значение по умолчанию, так сказать. Именно в данном случае совершенно ничего страшного не случится при любом значении REGISTR_GLOBALS.
PM MAIL ICQ   Вверх
-=Ustas=-
Дата 2.9.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Я говорю не за вышеприведенный случай, а вообще, в принципе!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Aliance
Дата 2.9.2005, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Цитата(Mont @ 2.9.2005, 06:27)
А если ты ей присваиваешь какое-либо значение перед тем как испльзовать ее где-либо в скрипте, то ничего страшного ИМХО.

Именно!

Кроме того, у меня r_g off и при чем здесь другой хостер? Меня мой волнует smile
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 2.9.2005, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Вообще по хорошему var является зарезервированным словом. Затем... Зачем заводить лишнюю переменную?
Работай сразу с $_POST массивом.
Проверяя элементы через isset()
PM ICQ   Вверх
Aliance
Дата 2.9.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Я var как пример привел, есесно у меня не оно smile
Ввожу переменную чтобы проверить, ввел ли юзер что-то. А если не ввел - подставляю значение по умолчанию.
А isset() я негативно отношусь, наверное потому что до сих пор не понимаю ее предназначения smile
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 2.9.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(Aliance @ 2.9.2005, 17:49)
А isset() я негативно отношусь, наверное потому что до сих пор не понимаю ее предназначения smile

Проверка существования переменной.
PM ICQ   Вверх
Kefir
Дата 3.9.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



кстати, не знаю насчёт isset - иногда лучше empty. Т.к. переменная может быть создана, но быть пустой. Т.е. для проверки нужно ли ставить дефолтовые значения лучше использовать if(empty($foo)) $foo = $default_foo; Так будут ловиться ловится случаи и неустановленной и пустой переменной.
PM MAIL WWW Skype   Вверх
-=Ustas=-
Дата 3.9.2005, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Kefir @ 3.9.2005, 12:25)
кстати, не знаю насчёт isset - иногда лучше empty. Т.к. переменная может быть создана, но быть пустой. Т.е. для проверки нужно ли ставить дефолтовые значения лучше использовать if(empty($foo)) $foo = $default_foo; Так будут ловиться ловится случаи и неустановленной и пустой переменной.

А вот тут ты ошибаешься. Если переменная не установлена, и ты ее будешь проверять на пустое значение то у тебя в любом случае выскачит ошибка, типа undefined varable, и поэтому придется постоянно глушить - `@`, ИМХО.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Aliance
Дата 3.9.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Так можно сперва isset() а потом empty() проверить smile
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 3.9.2005, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата
А вот тут ты ошибаешься. Если переменная не установлена, и ты ее будешь проверять на пустое значение то у тебя в любом случае выскачит ошибка, типа undefined varable, и поэтому придется постоянно глушить - `@`, ИМХО.

Не будет варнинга, проверь. empty проверяет как существование переменной, так и значение, если переменная задана.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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