В моем сценарии я добавляю некоторые данные подключения MySQL к константам для более легкого использования. В целях безопасности я стараюсь сделать имена своих констант менее очевидными, поэтому скрипт добавляет дополнительный уникальный префикс к каждой константе каждый раз, когда пользователь посещает страницу. Мой вопрос — хранятся ли константы для каждого пользователя или они хранятся в памяти, так как последний пользователь прекращает использовать их на сервере, и, таким образом, могут ли эти дополнительные префиксы для каждого пользователя создавать проблемы с производительностью или нет?
Это скрипт:
<?php
date_default_timezone_set('UTC');
class misclassified{
//pseudo function for getting mysql connection data
private function mysqlData(){
return array("host"=>"hostname","user"=>"username","base"=>"base");
}
public $prefix = "";
//defines mysql connection constants
public function mysqlConnConstants(){
$data = $this->mysqlData();
$prefix = crypt(date('ymdgis'),"salty pepper always better")."_";
$prefix = strtoupper($prefix);
define($prefix."HOST",$data["host"]);
define($prefix."USER",$data["user"]);
define($prefix."BASE",$data["base"]);
$this->prefix = $prefix;
return true;
}
}
?>
ОБНОВИТЬ:
Также предполагается использовать префиксные переменные в качестве проверки начала каждого файла, используемого в проекте. Это будет выглядеть так:
<?php
//$prefix - set in main php file where the mysqlMainConstants() is first executed
if(!defined($classReference->prefix."HOST") && !defined($classReference->prefix."USER")): die("Please, try the regular way of using our website!"); endif;
?>
Это может быть неправильно или бесполезно, и поэтому я спрашиваю, потому что сначала это звучало для меня как идея, чтобы пользователи не знали эти константы и не применяли их к сценарию злонамеренно.
Если вы хотите / должны извлечь данные из базы данных, тогда стоимость хранения значений в виде констант не будет значительной. Они будут храниться в памяти на весь срок выполнения PHP, который является одним HTTP-запросом.
Но более важный вопрос: зачем ты это делаешь? Это не добавляет безопасности операции и только делает ее намного более сложной средой для программирования.
Других решений пока нет …