Wpis z mikrobloga

Mirki, jak zabezpieczanie w swoich aplikacjach strony, do których użytkownik nie powinien mieć dostępu?
Użytkownik ma listę np. dokumentów. Klika aby przejść do danego dokumentu o ID=5, czyli przekierowuje go do podstrony np. ~/Documents.aspx?ID=5

Jak teraz zabezpieczyć aplikację, przed ręcznym zmienianiem argumentów przez użytkownika? Szyfrowanie? Jakieś walidacje procedurami, sprawdzające czy użytkownik powinien mieć dostęp do danej podstrony?

#aspnet #dotnet #webdev #programowanie
  • 7
@TwigTechnology: @slucham-psa-jak-gra:
a to nie blokujemy w takim przypadku dla danego użytkownika dostępu do całej strony .aspx? Chodzi mi włącznie o przypadek, gdy użytkownik zmieni te przykładowe ID np. na 4, a nie powinien mieć do tego dostępu.

Jak możecie, to zarzućcie jakimś linkiem, bo webdev to nie jest moja mocna strona, a muszę ogarnąć wiekowy projekt w pracy.
A nie mozesz w sesji trzymac jakiegos poziomu uprawnien w INT i Twoje rekordy z innej tabeli powiązać z taką wartością? Bo domyślam się, że chodzi Ci o takie ograniczenie, aby użytkownik nie mógł sobie sam wybrać dokumentu... bo w druga stronę to przecież niezależne od żadnych wartości.
@MokreFilcy: ja ci nie podrzucę przykładów, bo asp to nie moja bajka, ale z definicji powinieneś zakładać, że do każdej takiej strony będzie się ktoś chciał dostać, więc tego nie ma nawet co szyfrować (aczkolwiek czasami ludzie tak robią). Musisz zawsze sprawdzać, czy użyszkodnik jest zalogowany (jeżeli musi być), czy poziom uprawnień jest wystarczający do dostępu do skryptu i czy ewentualnie może otworzyć coś z tym id, który sobie wybrał.

W
@MokreFilcy: ACL, dodatkowa logika i tyle, z jakiegoś konkretnego powodu musi nie mieć praw do tego elementu o id 4 ? np nie jest to jego element, no to tutaj masz dwa rozwiązania - albo po prostu w bazie trzymać że ma uprawnienia do tego - i same zapytanie odpowiednio napisać, albo zawsze zwracać ten element z bazy i potem dalej sprawdzać czy ma dostęp czy nie
@MokreFilcy, przed pokazaniem dokumentu sprawdzasz czy gość ma dostęp. Jak nie ma - to albo odpowiedni komunikat albo kod błędu http.
Ja np ostatnio w jakimś b2b tak robiłem, że jak user próbuje otworzyć towar, do którego nie ma dostępu (ale może strzelać właśnie po id) to mu rzucam 404 (czyli tak jak nieistniejący id).