Strona 1 z 4
widoczne hasło w pliku php
: 10 lipca 2007, 01:19
autor: ponton
Witam.
Wiele aplikacji PHP wykorzystuje dostęp do bazy danych. Przy instalacji trzeba to hasło podać. Następnie hasło jest trzymane w pliku (np. config.php), do którego każdy ma dostęp (np. z shella). Czy jest jakiś sposób, żeby zabezpieczyć to hasło? ¯eby skrypt mógł czytać ten plik z hasłem, ale żeby on nie miał +r?
Pozdrawiam.
: 10 lipca 2007, 09:01
autor: ruun
ponton pisze:¯eby skrypt mógł czytać ten plik z hasłem, ale żeby on nie miał +r?
hehe, to chyba nie jest możliwe, może spróbuj zakodować hasło (md5).
: 10 lipca 2007, 09:46
autor: miszmaniac
Najlepiej zrób sobie plik w /etc/... np w /etc/php_includes/baza.php
o treści
<?php
$uztykownik_bazy=login
$haslo=...
?>
Zmień
(jeśli nie zadziała tak to root:root)
A potem
Oczywiście, nie na całe etc tylko na ten katalog który utworzyłeś w środku.
Potem w skryptach php zamiast tych linijek dopisuj
Powinno zadziałać. Ja w taki sposób zawsze piszę.
PS. Hasła pozostają niezakodowane, ale nie są widzialne dla użytkowników.
Co do md5, to chyba nie jest dobre rozwiązanie, bo nawet jeśli hasło jest zakodowane, to w 30sekund można je rozkodować, więc ta metoda 'szyfrowania' na niewiele się nada
: 10 lipca 2007, 11:02
autor: jaSS
Można zaszyfrować, istnieje wiele rozwiązań. Jedne tańsze drugie droższe, jedne leprze drugie gorsze
Np podstawowy: Zend Encoder który działa na większości platform bez doinstalowywania czegokolwiek.
Wpisz w google i napewno znajdziesz mase rozwiązań, kiedyś miałem jakiś darmowy (wymagal tylko dokompilowania do php) jak sobie przypomne link to wkleje.
: 10 lipca 2007, 12:20
autor: jang
ponton pisze:hasło jest trzymane w pliku (np. config.php), do którego każdy ma dostęp (np. z shella).
Ja tak z czystej ciekawości :
mam konto na jakimś serwerze i plik config.php
Kod: Zaznacz cały
<?php if ( ! defined( 'DIR_LIB' ) ) exit( 'No direct script access allowed' )] = true;
...
?>
i jak z shella chcesz się do niego dobrać ? (zakładam że nie jesteś adminem)
miszmaniac pisze:Najlepiej zrób sobie plik w /etc/... np w /etc/php_includes/baza.php
Na serwerze masz dostęp do katalogu /etc ?
ponton
W katalogu ~/public_html utwórz sobie katalog np.
/Config i chmod 700 a w nim trzymaj wszystkie pliki do których ma mieć dostęp tylko skrypt, a jeszcze lepiej utworzyć taki katalog powyżej
public_html
Do kodowania możesz użyć np. SHA1
Pozdrawiam
: 10 lipca 2007, 13:01
autor: miszmaniac
jang pisze:Na serwerze masz dostęp do katalogu /etc ?
Jasne, przynajmniej dla roota, a niby jak apache odczytałby konfigurację?
W /etc/ tylko niektóre pliki nie mają praw do odczytu dla ogółu, np. shadow
: 10 lipca 2007, 13:04
autor: jaSS
jang pisze:Ja tak z czystej ciekawości :
mam konto na jakimś serwerze i plik config.php
Kod:
<?php if ( ! defined( 'DIR_LIB' ) ) exit( 'No direct script access allowed' )] = true;
...
?>
i jak z shella chcesz się do niego dobrać ? (zakładam że nie jesteś adminem)
Najprostszym sposobem:
Kod: Zaznacz cały
echo file_get_contents('/sciezka/do/twojego/pliku/config.php');
A w necie jest mase skryptów do przegladania dysku poprzes php
: 10 lipca 2007, 14:02
autor: jang
miszmaniac pisze:jang pisze:Na serwerze masz dostęp do katalogu /etc ?
Jasne, przynajmniej dla roota, a niby jak apache odczytałby konfigurację?
W /etc/ tylko niektóre pliki nie mają praw do odczytu dla ogółu, np. shadow
Jednym słowem bogaty jesteś skoro jesteś właścicielem wszystkich serwerów w sieci że wszędzie jesteś root'em, no chyba że masz tak dobre znajomości że wszędzie nadają Ci prawa root'a.
Może i mnie załatwisz takie konto.
jaSS pisze:
Najprostszym sposobem:
Kod: Zaznacz cały
echo file_get_contents('/sciezka/do/twojego/pliku/config.php')]
[/quote]
Chyba się nie zrozumieliśmy. w ten sposób [b]echo file_get_contents('http://www.domena.com/config.php');[/b] chcesz odczytać mój plik ?
: 10 lipca 2007, 14:13
autor: miszmaniac
Jestem właścicielem swojego serwera + kilku w pracy, więc nie pomyślałem o tym, że ktoś może nie mieć roota :P
Po za tym, na jedno wychodzi. Chodziło o ideę umieszczenia pliku poza documentroot.
: 10 lipca 2007, 14:38
autor: jaSS
[quote="jang"]Chyba się nie zrozumieliśmy. w ten sposób echo file_get_contents('
http://www.domena.com/config.php')]
Ewidentnie sie nie zrozumieliśmy, ja mówiłem o przypadku kiedy "strona" znajduje sie na współdzielonym serwerze bez chroot/jail/vserver dla każdej domeny.
ponton mówil o dostępie przez shell, nawet jeżeli zablokuje taki dostęp żeby inni userzy na serwerze nie mogli wyświetlić tego pliku to user www-data musi mieć do niego dostęp a każdy inny user może odpalić skrypt php który tam sięgnie.
Kiedyś (dawno temu zanim zacząłem robić po prostu vservery) bawiłem sie z opcjami 'open basedir'/'safe_mode' + ograniczenie dostępu tylko dla użytkownika www-data do katalogów.