• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Link tylko dla właściciela / private url / signed url

Aruba Cloud - Virtual Private Server VPS
0 głosów
205 wizyt
pytanie zadane 18 grudnia 2022 w PHP przez kordix Gaduła (3,910 p.)
Cześć

Chciałbym udostępnić pewne treści użytkownikowi bez logowania, ale tak żeby tylko on miał do tego dostęp.

Myślałem o wysłaniu linka z jakimś tokenem , endpoint wtedy odpala kwerendę select * from tabela where token = 'xxx'.

Można dać jakiś dlugi losowy ciąg znaków, ale zastanawiam się czy to jest do końca bezpieczne.

Zastanawiam się jak to działa na stronach, wszak do jakiegoś artykułu na blogu też dostaniemy się w podobny sposób. Czy jest jakaś dużo różnica pomiędzy www.strona.pl?articleid =1 a www.strona.pl?resourcetoken=xxxxxxxx

Taki token ciężko jest zgadnąć , ale jakoś strony się indeksują pomimo że nie wiadomo jaki get zwróci jakąś treść. Czyli w jakiś sposób po prostu są dostępne.
komentarz 18 grudnia 2022 przez Wiciorny Ekspert (280,030 p.)
Access tokeny spokojnie mogą być przesyłane do użtykownika, ale nie do końca bezpieczne jest korzystanie z nich do odebrania wrażliwych danych choćby i dlatego, że tokeny można wykraść.
komentarz 18 grudnia 2022 przez kordix Gaduła (3,910 p.)
Login i hasło też może można wykraść... Bardziej chodzi o to czy to się nie upubliczni w niekontrolowany sposób

Ale weźmy ot takie popularne paczkomaty - dostaje się linka do podejrzenia statusu paczki. Albo jakieś inne treści które pokazują jakąś treść wygenerowaną przez użytkownika bez logowania
komentarz 18 grudnia 2022 przez Wiciorny Ekspert (280,030 p.)
ale to nie są dane wrażliwe to raz, linka nikt nikomu publicznie nie daje, a jak naturalnie zauważyłeś może on być po prostu wykradziony jak inne rzeczy

Login i hasło można wykraść, ale po to są też mechanizmy autoryzacji użytkownika z urządzeniem kodem  captcha itp.
Idąc tym tokiem myślenia nic nie można robić, bo wszystko można złamac. Ja mówię w przypadku tokenu jest to "naturalne" gdyż token jest wysyłany do klienta stąd potencjalne ryzyko.
komentarz 18 grudnia 2022 przez kordix Gaduła (3,910 p.)
No to wiadomo że taki link by był wysyłany na adres email
komentarz 18 grudnia 2022 przez Wiciorny Ekspert (280,030 p.)
to możesz wygenerować unikalny link który będzie zapisany do bazy tylko na określony czas i jeśli ten link " zostanie wyłapany jako request do aplikacji" wtedy będzie otwierać się zasób który dany użytkownik chce- nie ważne kto użyje linku.

Czyli praktycznie taki schemat i sposób podobnego działania jak ma miejsce w paczkomatach
komentarz 18 grudnia 2022 przez kordix Gaduła (3,910 p.)
Ogólnie to widzę takie rzeczy

1.Do linków lepiej dać atrybut rel=”nofollow” , i wyłączyć indeksowanie stron.

2.Czasowe wygaszanie jak wspominałeś

3.Może być strona pośrednicząca gdzie wartości z geta wchodzą w formularz, a dopiero na post się pokazuje treść.

4.Mozna zwrócić 404 jeśli token nie jest podany

1 odpowiedź

+1 głos
odpowiedź 21 grudnia 2022 przez rafal.budzis Szeryf (85,460 p.)
Nie ma różnicy miedzy www.strona.pl?articleid =1 a www.strona.pl?resourcetoken=xxxxxxxx jedynia trudność to odgadnięcie ale to można rozwiązać za pomocą zmiany articleid na np uuidv4 zamiast zwykłych liczb numerowanych od zera.

Aby treść nie była zindeksowana najłatwiej zwracać kod odpowiedzi 404 zawsze ;) Roboty nie indeksują stron których nie ma.

Co do bezpieczeństwa to możesz tworzyć pliki które są usuwane po jednorazowym odczytaniu. Warto zwrócić uwagę jak to zrobił pastebin ;)

Najbardziej bezpieczne rozwiązanie to potwierdzanie prze osobę która wysłała plik. Np ktoś wrzuca swój plik i kopiuje link. Następnie daje go komuś. Ten ktoś wchodzi na stronę i wysyła swoje informacje o systemie w useragent i widzi komunikat w stylu "proszę czekać na potwierdzenie dostępu". Następnie osoba która wrzucała plik widzi ktoś mający przeglądarkę firefox i korzystając z windows 11 o godzinie 8:57 chce otworzyć plik. Wtedy ten ktoś musi potwierdzić czy chce udostępnić plik dla tej sesji usera. Ale nie wiem czy to spełnia wymagania projektu ale było by najbezpieczniej.

Podobne pytania

0 głosów
2 odpowiedzi 553 wizyt
pytanie zadane 19 stycznia 2018 w Java przez must Bywalec (2,980 p.)
+1 głos
2 odpowiedzi 316 wizyt
pytanie zadane 10 maja 2024 w PHP przez batmat1903 Początkujący (340 p.)
0 głosów
2 odpowiedzi 465 wizyt
pytanie zadane 3 września 2022 w PHP przez Piotrek2713 Mądrala (5,520 p.)

93,322 zapytań

142,320 odpowiedzi

322,388 komentarzy

62,651 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...