- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Помогите пожалуйста определится.
Не могу понять, можно ли допускать глобальные переменные в php, или всё-же это опасно.
Может быть, это безопасно лишь для определённых задач? В каких случаях глобальные переменные могут быть потенциально опасными?
И почему по-умолчанию, они всё-таки отключены?
1) Не могу понять, можно ли допускать глобальные переменные в php, или всё-же это опасно.
2) Может быть, это безопасно лишь для определённых задач?
3) В каких случаях глобальные переменные могут быть потенциально опасными?
4) И почему по-умолчанию, они всё-таки отключены?
1) Никакой опасности глобальные переменные сами по себе не несут.
2) Нет, это безопасно для любых задач. Зачастую это даже удобнее.
3) Если у программиста писавшего скрипт кривые руки.
4) Потому что по умолчанию у многих "программистов" кривые руки.
Что бы не давать повода к холи-вару, отметим что есть 3 способа писать
1) Для register globals on только
2) Для register globals off только
3) Для любого состояния register globals
Нормальный человек пишет под 3-ую ситуацию.
Правильно написанный скрипт для 1-ой ситуации парой строк превращается в скрипт способный правильно работать во 2-ой ситуации.
Правильно написанный скрипт для 2-ой ситуации потенциально опасен в ситуации, когда register globals становится on и/или когда он при дальнейшей разработки скрипт становится частью бОльшего.
Может быть, это безопасно лишь для определённых задач? В каких случаях глобальные переменные могут быть потенциально опасными?
Лучше пишите без них, т.е. отключите. Они опасны тем что через переменные можно взломать ваш скрипт путем подставления переменных в урл или форму, а так как при включенных глобальных переменных PHP обрабатывает такие переменные как обычные можно поменять значение любой переменной и она обработается скриптом даже на удаленном хотинге, чего вам явно не надо.
3. Если программист не проводит предварительную инициализацию переменных, требующих того.
Кроме того, лучше писать код не используя глоальные переменные.
В таком случае он будет работать на обоих хонфигурациях (он/офф).
Помогите пожалуйста определится.
Не могу понять, можно ли допускать глобальные переменные в php, или всё-же это опасно.
Может быть, это безопасно лишь для определённых задач? В каких случаях глобальные переменные могут быть потенциально опасными?
И почему по-умолчанию, они всё-таки отключены?
Я бы предпочел работать с register globals off edogs конечно правильно говорит, что всё дело в руках, но интернет такая штука, что лучше избыточно обезопасить себя, чем случайно оставить брешь.
Нормальный человек пишет под 3-ую ситуацию.
Правильно написанный скрипт для 1-ой ситуации парой строк превращается в скрипт способный правильно работать во 2-ой ситуации.
Правильно написанный скрипт для 2-ой ситуации потенциально опасен в ситуации, когда register globals становится on и/или когда он при дальнейшей разработки скрипт становится частью бОльшего.
Правильно написаный скрипт в любой ситуации безопасен, а во 2-ой ситуации тем более, так что лучше/безопаснее писать именно для register globals только off
(а переменные абсолютно всегда надо обнулять, без каких либо исключений)
На хостинге лучше выставить register globals off, пусть юзер включает на свой страх и риск:)
Скрипты надо писать так, что бы они работали корректно и при register globals on.
Никакой опасности включение register globals on в себе не несет. Опасность может в себе нести неправильно написанный код только, некорректность написания которого будет заметна только при on настройках.
И беда в том, что обычно когда идет речь о том, что "писать надо под off только" (вариант 2), это подразумевает что человек берет переменные из суперглобальных массивов и все. Потому что человеку дают ссылки на $_POST, $_GET и т.д., и подразумевают что переменные он сам догадается обнулить, так ведь очень часто как раз не догадается и это будет началом конца.
.... лучше/безопаснее писать именно для register globals только off
Чем это безопаснее кода который будет работать при любом состоянии register globals (вариант 3)?
Глобальные переменные не несут в себе опасности. Только лишь путаницу в данных у неопытного программиста. Если боитесь - передавайте каждый раз параметры в функцию ;)
так ведь очень часто как раз не догадается и это будет началом конца.
Для этого есть "нотисы" и опытный программист всегда включает их во время отладки и выключает в финальном продукте.
И вот опять вернулись к простой истине
Правильно написанный скрипт в любой ситуации безопасен
(естественно если "любая ситуация" не подразумевает изначально опасный скрипт типа "трояна" или "вируса" но это отдельная история)
Если боитесь - передавайте каждый раз параметры в функцию
Для полноты картины, напишите тут кто-нибудь, пожалуйста, мини howto. Спасибушки.
>Сообщение от Каширин
>Если боитесь - передавайте каждый раз параметры в функцию
Для полноты картины, напишите тут кто-нибудь, пожалуйста, мини howto. Спасибушки.
Если отвечать конкретно на этот вопрос, то допустим у Вас есть код
Который должен выводить 15
Вы хотите что бы на него не влияли "глобальные" переменные, то можно "завернуть" это в функцию, например
А если, допустим, к этому моменту у Вас есть переменная $c - где-то ранее определённая в скрипте, то можно передать её и только её в функцию
Если она ($c) глобальная, то можно
Но ничто не мешает и "обнулить" переменные перед использованием, если они д.б. пустыми по идеологии скрипта