![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 157 Pomógł: 0 Dołączył: 12.02.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam
Tak mnie zastanawia w jaki sposób w symfony można chronić dane przed nieautoryzowanym usunięciem. Nie chodzi mi oto, że można powtórzyć żądanie logowania czy też pozwolić użytkownikom o określonych prawach pozwalać na usuwanie danych - te rzeczy są oczywiste. Bardziej mnie interesuje w jaki sposób maskuje się URL itp. Wiem, że może pytanie brzmi lamersko, ale zaczęło mnie to dzisiaj zastanawiać, gdy tak przyjrzałem się różnym projektom w symfony, gdzie usuwanie jest realizowane na zasadzie adresu URL jak example.com/my_module/delete/id/1. Jak widać usuwanie odbywa się po id - które zapewne może być kluczem głównym. Jak widać taki klucz łatwo zgadnąć. Co ciekawe klucze składające się z trzech części również nie są bezpieczne. Więc co, generowanie ich ze znaków losowych. Czy może symfony oferuje jakieś własne mechanizmy zabezpieczeń. Np. trzyma informacje o modelu gdzieś w pamięci itp. ? To są pierwsze dni z symfony - więc stąd moje pytania. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To czy użyjesz get czy post jest sprawą drugorzędną. Obie formy i tak można łatwo spreparować. Z tym, że get łatwiej z racji większej widoczności parametrów. To co najistotniejsze to sprawdzanie uprawnień po nadejściu żądania. Nie może być tak, że user modyfikuje nie swoje dane. Co z tego że ma prawa do edycji, usuwania czy tworzenia, skoro próbuje je wykorzystać dla nie swoich zasobów? Jest to z reguły prosto rozwiązywane, ponieważ jakoś łączysz zazwyczaj dane usera z nim poprzez id lub w inny sposób jednoznacznie go identyfikujący. Sprawdzasz więc choćby id usera w sesji i id właściciela zasobu (no chyba, że masz jeszcze grupowe prawa dostępu). To z reguły wystarcza by wykluczyć lub potwierdzić prawa do zasobu. Tylko uważaj na grupy uprzywilejowane. Mi się kilka razy zdarzyło o tym zapomnieć i odciąłem w ten sposób admina, który był rozpoznawany jako user bez praw do modyfikacji zasobów innych osób (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 03:53 |