исползование extract($_GET)

Фанат

oncle terrible
Команда форума
если бы ты хоть немного интересовался - ПОЧЕМУ авторы пхп заставляют использовать суперглобальные массивы, ты бы понял, что твоё упрощение ведёт к дырам на сайте
 

dilan

Новичок
В свои кодах я использую только _POST и _GET но для быстрого объяснения думаю нормально использовать extract, ведь основной вопрос был не в этом согласись.

А ты взял и снес все мои сообщения :)
 

dilan

Новичок
Ord даже сам не знает почему надо скрыть переменную в ссылке...
Так что путь передает в ней не парится
 

white phoenix

Новичок
dilan
бред. extract для этого не предназначен совершенно. я в своё время нашел уязвимости во множестве популярных движков из-за того что такие умники как ты их писали :) да и сейчас зачастую этот баг присутствует. суть очень проста, extract принимает массив в качестве аргумента, и присваивает переменным с названиями идентичными ключам массива, соответствующие значения. иными словами, извлекает содержимое массива в массив $GLOBALS. достаточно сделать script.php?_SERVER[переменная] = значение, и переменная перезапишется. В своих скриптах я использую
PHP:
@set_magic_quotes_runtime(0);
if (get_magic_quotes_gpc()) {if (!function_exists("strips")) {function strips(&$arr,$k="") {if (is_array($arr)) {foreach($arr as $k=>$v) {if (strtoupper($k) != "GLOBALS") {strips($arr["$k"]);}}} else {$arr = stripslashes($arr);}}} strips($GLOBALS);}
$_REQUEST = array_merge($_COOKIE,$_GET,$_POST);
foreach($_REQUEST as $k=>$v) {if (!isset($$k)) {$$k = $v;}}
код извлекает входящие переменные, если нужно удаляет экранирование кавычек.
 

Фанат

oncle terrible
Команда форума
$_REQUEST = array_merge($_COOKIE,$_GET,$_POST);
это ещё что за новости?
foreach($_REQUEST as $k=>$v) {if (!isset($$k)) {$$k = $v;}}
это закрывает одну дыру, но оставляет другие, не менее классические.
так что гордиться этим кодом не надо
 

white phoenix

Новичок
Фанат
код я писал лично для себя, т.к. мне так удобнее, думаю каждый сам выберет что ему нужно.
> это ещё что за новости?
я решил в своем движке объеденить все входящие переменные, мне кажется так меньше дыр оставляешь когда пишешь код, т.к. нужно четко осознавать тот факт что переменные можно передать любые.
>это закрывает одну дыру, но оставляет другие, не менее классические.
> так что гордиться этим кодом не надо
какие? расскажи если не сложно. кодом я не горжусь, писал на скорую руку.
 

Vladson

Сильнобухер
white phoenix, Гравицапа
Простые и понятные, посмотрите на эту тему FAQ там очень даже подробно написано...

(для примера можете посмотреть популярную дыру в рнрВВ2.0.8 в faq.php это один из самых классических экземпляров)
 

white phoenix

Новичок
Фанат
подумай чем отличается это от $_REQUEST и поймешь зачем мне это нужно :)
 

SiMM

Новичок
> подумай чем отличается это от $_REQUEST
> зачем мне это
white phoenix, может всё же просвятишь общественность?
 

Popoff

popoff.donetsk.ua
Идет борьба за то, что лучше:

$login

или

$_GET['login']

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

texrdcom

Новичок
PHP:
extract($_POST);
И в чем здесь дыра заменяються переменные ?
конечно заменяються для того это и делаеться )
Это такая дыра )))
Нет ни какой дыры если использовать с умом конечно когда вы извелекаете переменные в них может бить все что угодно !
Надо применить меры которые нужны - добавления кавычек удаления спец сиволов там где это надо.
Для чего изпользовать данную конструкцию - лично я использую ее когда мне надо подставить много переменных в определенный sql запрос чтобы не писать для каждой переменной $_POST['fsf']
Извлечения происходит в определенной функции и переменные естественно доступны только в данной функции.
Естественно автоглобал вырубанный )
Так что особой опастности в этом не вижу если вы ее видите и можете показать пример - чиркните.
 

Popoff

popoff.donetsk.ua
У меня идея: собрать коллекцию глупостей и поискать ответ на вопрос "для чего эти глупости отстаивают?"

texrdcom
не хочешь мне в этом помочь?
 
Сверху