[PHP+mySQL] Logowanie do bazy danych bez użycia hasła

Witam,

Mam zamiar wykorzystać bazę mySQL na stronie, ku mojemu zdziwieniu okazało się, że w kodzie PHP muszę jawnie podać hasło użytkownika do bazy, innymi słowy każdy w internecie miałby dostęp do tego hasła, czyli i do bazy. Jak tego uniknąć? Wszystkie tutoriale jakie dotąd widziałem operują właśnie na mysql_connection…

Przecież napisałeś, że w kodzie PHP, kod PHP nie jest wysyłany do użytkownika…

W źródle strony masz dostęp do kodu. 

To nie jest PHP, tylko HTML, nie masz tam hasła podanego w funkcji łączącej się do bazy…

Jeśli masz podane hasło w źródle strony to robisz coś bardzo źle lub sam je tam wyświetlasz. Innej opcji nie ma.

Jak pisali poprzednicy:

Wszystko co jest zawarte między znacznikami “<?php i ?>” nie jest wysyłane do przeglądarki o ile sam tego nie wymusisz.

Jest jeden wyjątek jednak od tej zasady.

Jeśli zestawiasz połączenie z bazą i z jakiegoś powodu nie dojdzie ono do skutku to potrafi trzasnąć wyjątkiem w którym będzie zawarte hasło.

Przypadkiem nie jest tylko informacja o tym jakiego loginu użyto i informacja Yes/No czy użyto hasła do połączenia?

Zobacz zawartość PDOException w tym przypadku :wink:

Przykład z komunikatem, numerem i śladem (ten co zawiera hasło ;)):

pdoexp.png

@GioW

jasne, tylko że wtedy ustawiasz debug = false i nie pokazuje stacktrace :wink: To chyba widok silexa więc podam kodzik: $app[‘debug’] = false;

Nie dziękuj! :wink:

Zawarłem tylko informację, że trzeba obowiązkowo wyłapać ten wyjątek i przekazać go do użytkownika bez trace-u inaczej hasło (lub jego część) trafi do przeglądarki.

Czyli: brak obsłużonego wyjątku lub brak znajomości tego co może zostać wyplute (czyt. przekazanie całości do użytkownika) może skutkować przekazaniem hasła.