![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
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? -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 02:50 |