[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Дыры в безопасности
docentovich
$key = $_POST['key'];
$$key->make();

чем опасна данная конструкция, могут ли ее использовать злоумышленники, и как не меняя конструкцию, добавив проверок ее использовать? или забыть пор такую конструкцию и передлать по другому?

суть вот в чем, есть множество обьектов, котрые я возварщаю по запросу. в key храниться собственно имя-запрос обьекта. обьектов много и по этому не хочеться указывать доступные имена явно
chee
Цитата (docentovich @ 8.06.2016 - 17:31)
суть вот в чем, есть множество обьектов, котрые я возварщаю по запросу. в key храниться собственно имя-запрос обьекта. обьектов много и по этому не хочеться указывать доступные имена явно

Возращать как массив объектов с ключом, а потом делать выбирать по ключу

$key = $_POST['key'];
$objects[$key]->make();
Цитата (docentovich @ 8.06.2016 - 17:31)
или забыть пор такую конструкцию и передлать по другому?

лучше забыть и вообще не использовать. Не только из опасности взлома, но и с точки зрения выразительности кода, такой код очень сложно читать. Лучше для таких вещей как тут использовать или массивы (как в примере выше), либо коллекции, либо репозиторий.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
docentovich
спасибо! реализовал Пулом объектов (это наверное у вас коллекция):

SelectBoxPull::pushSelect(new SelectBox('ТО 204', 'dw204Select'))
->addItem('1')
->addItem('2');
.........
SelectBoxPull::pushSelect(new SelectBox('ТО 999', 'dw999Select'))
->addItem('1')
->addItem('2');


pushSelect - добавляет новый обьект в массив обьектов и возварщает указатель на объект.

а обращаюсь я к нему так

SelectBoxPull::getSelect($key)->make();

в итоге мне не пришлось создавть массив где бы я еще раз прописывал все названия вида dw204Select:

$dw204Select = new SelectBox('ТО 204');
........
$dw999Select = new SelectBox('ТО 999');

$mas = array(
'dw204Select' => $dw204Select,
.....
'dw999Select' => $dw999Select
)

docentovich
а что такое пул тогда?
docentovich
я не знаком с паттерном пул (краем уха слышал что такой есть). я имел ввиду коллекцию объектов котрые можно вытащить и положить
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.