Код: Выделить всё
class dbcon{
private $user = null;
private $pwd = null;
private $db = null;
private $pdo = null;
private $host = null;
public $error = null;
function __construct() {
$this->user = get_cfg_var("mysql.default.user");
$this->pwd = get_cfg_var("mysql.default.password");
$this->db = get_cfg_var("mysql.default.db");
$this->host = get_cfg_var("mysql.default.host");
}
function __destruct() {
$this->close();
}
private function open(){
try{
if(!$this->pdo){
$this->pdo = new PDO(
'mysql:dbname='.$this->db.'; host='.$this->host.';',
$this->user,
$this->pwd,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
if($this->pdo){
$this->pdo->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
else{
throw new PDOException();
}
}
}
catch(PDOException $ex){
echo 'ERROR: '.$ex->getMessage();
}
}
private function close(){
$this->pdo = null;
}
public function query($query, $params){
$result = $stmt = $single_row = null;
$this->open();
try{
$stmt = $this->pdo->prepare($query); # Prepare query
if(!is_null($params)){
$paramCount = count($params) - 1;
for($i=1; $ibindValue($i, $params[$i]);
}
$stmt->execute(); # Execute Statement
$result = $this->fetchResultSet($query, $stmt);
}
}
catch (PDOException $ex) {
$this->error = 'Exception:
'.$ex->getTraceAsString().'';
}
catch (Exception $ex) {
$this->error = 'Exception: '.$ex->getTraceAsString().'';
}
return $result;
}
}
Код: Выделить всё
mysql.default.user = "xxxxxxxx"
mysql.default.password = "yyyyyyyy"
mysql.default.db = "zzzzzzzz"
mysql.default.host = "localhost"
Теперь, если я запускаю скрипт ниже:
< /code>
Вывод вышеприведенного сценария: < /p>
dbcon object
(
[пользователь: dbcon: private] => xxxxxxxx
[pwd: dbcon: private] => yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzz
[pdo: dbcon: private] =>
[host: dbcon: private] => localhost
[error] =>
) < /p>
< /blockquote>
Таким образом, любой из моих товарищей по команде может видеть мои кредитные данные Database с помощью простого сценария PHP. Я попытался добавить учетные данные базы данных в .htacces , как ниже:
php_value mysql.default.user "xxxxxxxx"
php_value mysql.default.password "yyyyyyyy"
php_value mysql.default.host "zzzzzzzz"
< /code>
Но я не могу получить эти значения с любой функцией, которую я могу найти. Я даже пытался сохранить вышеуказанные учетные данные A php.ini в другом поддомене. Но нет блокировки. < /P>
Как другие могут предотвратить просмотр учетных данных базы данных? Пожалуйста, помогите.
Подробнее здесь: https://stackoverflow.com/questions/796 ... -php-files