Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Przechowywanie przez php hasła do MySQL
Forum PHP.pl > Forum > Przedszkole
PrzedszkolakMySQL
Witam,
Aktualnie piszę swój pierwszy projekt oparty o MySQL i pojawiło się takie zagadnienie: jak przechowywać login i hasło do bazy MySQL by skrypty php mogły się z nią połączyć.
Bo przecież nawet jeśli baza zapewnia dostatecznie bezpieczeństwo danych w niej się znajdujących przed dostępem do nich osób niepowołanych to jeśli samo hasło do bazy będzie niedostatecznie chronione to nic z tego bezpieczeństwa nie zostanie...
Pierwszym przychodzącym do głowy sposobem jest trzymanie hasła do bazy bezpośrednio w pliku php, ale takie rozwiązanie wydaje mi się bardzo nieprofesjonalne. Gdy mój skrypt będzie miał instalator, który zapyta usera jakie jest hasło do MySQL to przecież nie będę edytować kodu swojego skryptu...
Jak Wy to robicie, jak to jest rozwiązane w profesjonalnych projektach jak np. phpBB?

Pozdrawiam
Cysiaczek
Dlaczego masz nie trzymać hasło do DB w kodzie? To jedyne sensowne rozwiązanie, bo gdzie indziej możesz je trzymac? Instalator ma właśnie za zadanie pobrać od Ciebie hasło i tak zmodyfikować kod, aby to hasło się w nim znalazło smile.gif. Takie hasło przechowuj sobie w pliku konfiguracyjnym. np.
  1. <?php
  2. $dbName='myCoolDB';
  3. ?>

Choć lepiej przechowywać w stałych tongue.gif
nospor
Cytat
Dlaczego masz nie trzymać hasłs do DB w kodzie? To jedyne sensowne rozwiązanie, bo gdzie indziej możesz je trzymac?
@cysiaczek ty tak nie galopuj. a chociazby o plikach xml slyszal? albo zwykle txt?
Co nie zmienia faktu ze plik .php tez moze byc, ale nie mow ze to jedyne sensowne rozwiązane, bo z tym sensowne to bym polemizowal winksmiley.jpg

edit: z jedyne tez
Cysiaczek
Cóz, miałem pisac o .txt i .xml, ale się rozmyśliłem, bo troche bardziej bezpieczniej w .php - przynajmniej ,mniejsza szansa, że ktoś podejrzy tongue.gif btw. jak w XML'u, to już lepiej w stringu XML zapisanym do pliku php. smile.gif
nospor
Cytat
.php - przynajmniej ,mniejsza szansa, że ktoś podejrzy
przy źle skonfigurowanym serwerze to ci wszystko podejrzą. i zapisywanie xml do php mija sie z celem
Cysiaczek
Własnie chodzi mi o te wypadki, gdy serwery są źle skonfigurowane, bo cóż to za problem poprosić serwer o pokazanie pliku .txt, czy .xml ? biggrin.gif
nospor
No ale jak bedzie serwer źle skonfigurowany to bede mogl sobie chociazby caly katalog przegladac przez www i tym samym miec dostep do plikow php. no nie popadajmy w paranoje smile.gif
PrzedszkolakMySQL
Zaczęła się dyskusja co do złej lub dobrej konfiguracji serwera ale skrypt jest na koncie na płatnym serwerze. Za dużo to ja tam chyba nie mogę konfigurować, co?
Ludvik
Możesz utworzyć folder config, w którym umieścisz plik .htaccess, w którym z kolei zabronisz dostępu komukolwiek przez serwer http. Plik będzie widziany jednak przez skrypty. Wtedy możesz robić co chcesz... Większość serwerów udostępnia możliwość konfigurowania apache przez .htaccess.
PrzedszkolakMySQL
Aha smile.gif
Jak na razie nie wiem co się wpisuje do tego pliku biggrin.gif
Ludvik
Google wie: apache access control. Dwa pierwsze wyniki.
PrzedszkolakMySQL
A jak to robią projekty jak phpBB, php-nuke? Właśnie w ten sposób?
Ludvik
Nie pamiętam dokładnie. Wybór jest dowolny, pliki php ze zmiennymi w kodzie php są bezpieczne. Wszelkie pliku, do których nie ma dostępu z zewnątrz też są bezpieczne. To twój wybór, która technika Ci się bardziej spodoba smile.gif
nazihipi
Cytat(PrzedszkolakMySQL @ 16.07.2006, 12:47 ) *
A jak to robią projekty jak phpBB, php-nuke? Właśnie w ten sposób?

phpBB tworzy w gł. kat. plik config.php (bodajże) i tam umieszcza wszystkie inf. potrzbne do połączenia z bazą...
Gość
Cytat
phpBB tworzy w gł. kat. plik config.php (bodajże) i tam umieszcza wszystkie inf. potrzbne do połączenia z bazą...


W formie:

  1. <?php
  2. $mysql_config['pass'];
  3. ?>


a później ten plik config.php include'uje? W takim razie ja chyba też tak zrobię. Dzięki!
Gość
Tak miało być biggrin.gif
  1. <?php
  2. $mysql_config['pass'] = 'haslo';
  3. ?>


Sorry, ale jako gość nie mogę edytować postów, chyba sobie zrobię konto na forum smile.gif
nazihipi
tak naprawdę rób w czym chcesz tylko pamiętaj o zabezbieczeniu (np. poprzez .htaccess) tego przed osobami trzecimi

Cytat
Kod
<?php

$mysql_config['pass'] = 'haslo';

?>


nie prościej i wygoniej:

Kod
define( 'DB_PASS', 'password' );
isia
Przeczytałam post i wygooglowałam conieco.
Pytanie w ramach upewnienia się:
Czy taki wpis w pliku: .htaccess, umieszczonym w katalogu private spowoduje, że moje hasła w skryptach poczują się bezpieczniej :roll2:

  1. <?php
  2. <Directory /private>
  3. Options None
  4. AllowOverride None
  5. </Directory>
  6. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.