[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение приватных свойств объекта
Страницы: 1, 2
Arh
Ковырялся сегодня с кодом и обнаружил такую неприятную штуку.
Подключение к базе осуществляется с помощью PDO через синглтон.
как то так
$db = db::connect();


в классе db, который наследуется от PDO прописаны свойства для подключения.
    private $host    = 'localhost';      //Адрес базы
public $name = 'dbname'; //Имя базы
private $user = 'username'; //Имя пользователя
private $pass = 'password'; //Пароль пользователя
public $prefix = 'pref'; //Приставка для названий таблиц в базе данных

private $type = 'mysql'; //Тип базы данных
public $charset = 'utf8'; //Кодировка базы


Думал что их никак нельзя прочитать, что бы украсть данные для подключения к базе. Оказалось можно и легко.

Например вот так будет ошибка.
class test {
private $login = '123';
private $password = '1q2w3e';
}

$test = new test;
echo $test->login;
echo $test->password;


А вот так видна вся подноготная

class test {
private $login = '123';
private $password = '1q2w3e';
}

$test = new test;

function hack($hack) {
print_r(debug_backtrace());
}

hack($test);


[function] => hack
[args] => Array
(
[0] => test Object
(
[login:test:private] => 123
[password:test:private] => 1q2w3e
)

)


Кто подскажет как с этим бороться? Ведь если злоумышленник как то незаметно подсунет этот код в проект, в дополнение к проекту, будет печаль.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

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