lut 06

Sposób połączenia z bazą danych przy wykorzystaniu plików konfiguracyjnych opisany w poprzednim punkcie jest fajny, ale ma swoją wadę musimy za pomocą pliku .htaccess zabezpieczyć dostęp z zewnątrz do plików konfiguracyjnych aby nikt poprzez przeglądarkę nie mógł się dostać do plików konfiguracyjnych a tym samym odczytać hasło. Poniżej przedstawiam alternatywną metodę na połączenie się z bazą, nie wymaga ona przechowywania danych w plikach konfiguracyjnych. Podobnie jak poprzednio modyfikujemy plik Bootstrap.php dopisując do niego tylko jedną metodę, skupię się tylko na metodzie _initDbNames() reszta pozostaje bez zmian.

public function _initDbNames()
{
    try {
	$config = array(
	    'host'     => 'localhost',
	    'username' => 'root','password' => 'haslo',
	    'dbname'   => 'nazwa bazy',
	);
	$db = Zend_Db::factory('PDO_MYSQL', $config);
	Zend_Db_Table::setDefaultAdapter($db);
	$db->query('SET NAMES UTF8');
    }catch (Exception $e) {
        echo "Blad polaczenia z baza danych: ".$e->getMessage();
        exit(0);
    }
}

Autor siema \\ tagi: , , , , , , ,



5 Odpowiedzi do “Alternatywny sposób połączenia z bazą danych”

  1. wrona napisał(a):

    Wielkie dzięki za te skrócone poradniki “na czasie”, twórz, twórz przydaje się :)

  2. Detrus napisał(a):

    w standardowym układzie katalogów aplikacji ZF masz:
    |– application
    | |– Bootstrap.php
    | |– configs
    | | `– application.ini
    | |– controllers
    | | |– ErrorController.php
    | | `– IndexController.php
    | |– models
    | `– views
    | |– helpers
    | `– scripts
    | |– error
    | | `– error.phtml
    | `– index
    | `– index.phtml
    |– library
    |– public
    | |– .htaccess
    | `– index.php
    `– tests
    |– application
    | `– bootstrap.php
    |– library
    | `– bootstrap.php
    `– phpunit.xml

    z czego katalog PUBLIC ma być głównym katalogiem web server’a / vhost’a słowem przy prawidłowej konfiguracji (apache) application.ini nie jest dostępny przez http:// a jedynie dla ZF.

  3. him napisał(a):

    bardzo trafna uwaga

  4. Mazurro napisał(a):

    Ponieważ spora liczba hostingów np. home.pl nie pozwala na korzystanie z tego typu struktury, zalecanej przez ZEND

  5. Max napisał(a):

    a jak wywalisz mod_php to uzyskasz dostęp do hasła. Atak na interpreter php-> wyłącza się -> czytasz kod źródłowy.