Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Większe bezpieczeństwo witryn
Forum PHP.pl > Forum > Bazy danych > MySQL
cojack
Witam,
Ostatnio jak tak sobie siedzieliśmy z kolegą nad oscommerce, i rozważaliśmy pewne jego aspekty, różnicę pomiędzy innymi sklepami, jego modyfikacjami. Wpadł mi pomysł do głowy związany z bezpieczeństwem witryn internetowych.

Otóż cała filozofia opiera się o MySQL'a, jak wiadomo MySQL niczym wykona polecenie pierw sprawdzi czy dany użytkowników ma prawa do wykonania takiego polecenia/zapytania. No i tutaj jest cały sens i genialny aspekt bezpieczeństwa w witrynach internetowych. Sprawdzałem już wiele różnych cms'ow, płatnych i tych komercyjnych, od prostych blogerów do zaawasowanych pozwalających prowadzić portale informacyjne. I w większości z nich jest tworzony tylko jeden użytkownik do bazy danych z uprawnieniami, SELECT, INSERT, DELETE i UPDATE, czasami nawet z większymi, oczywiście nie mówie tutaj o panelu administratora.
Teraz załóżmy że mamy sobie formularz w php veryfikujemy sobie wszystkie dane za pomocną znanych nam funkci, get_magic_quotes, addslashes, trim itp itd... i wykonujemy fomularz sam w sobie, czyli PHP_SELF, w takim wypadku jest pewne niebezpieczeństwo, ale czy nie lepiej byłoby zrobić formularz bez php, czyli cała sekwencja veryfikacji danych była by w całkiem osobnym pliku i w tym pliku veryfikującym dane byłby właśnie inny użytkownik do połączenia się z bazą danych który ma większe przywileje, np UPDATE, INSERT. co wyeliminowało by wg mnie możliwość sql injection, a następnie dane były by przekazywane do następnego pliku z użytkownikiem o mniejszych prawach dostępu, co o tym myślicie?

Czy jest sens w ten sposób męczenia bazy danych dla większego bezpieczeństwa czy jest to w zupełności niepotrzebne?
nevt
pomysł niezły i nie nowy - po to są w MySQL użytkownicy z uprawnieniami, i to nie tylko ogólnie dla bazy, ale także z możliwością ustalenia indywidualnych uprawnień do każdej tabeli / widoku oddzielnie, żeby z tego korzystać. ale niestety pod warunkiem, że masz serwer dedykowany lub hosting z górnej półki.

niestety - bo w typowym hostingu (chociażby usługi home.pl) dostajesz na każdą bazę 1 usera z przyciętymi uprawnieniami i nie masz możliwości dodania kolejnych. nie wiem dlaczego firmy hostingowe stosują takie ograniczenia (prawdopodobnie z obawy o bezpieczeństwo swoich usług i uproszczenie admionistracji) - ale de facto zamyka to w większości przypadków możliwość wykorzystania wbudowanego w MySQL systemu uprawnień.

pozdrawiam.
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-2024 Invision Power Services, Inc.