Jak chronić adres URL generowany przez moją aplikację?

Przykład

http://www.mojadomena.com/jsp/get_article.jsp?id=1

Jak sprawić, by te adresy URL były nieczytelne dla ludzi?

0
ilovetolearn 25 lipiec 2011, 20:34
2
„nieczytelne dla ludzi”, „chroń” i „zapewniaj bezpieczeństwo” są różne. Przed jakim zagrożeniem próbujesz się chronić?
 – 
yan
25 lipiec 2011, 20:35
1
To zły pomysł, ponieważ utrudni indeksowanie Twoich stron wyszukiwarkom, jednocześnie nie zapewniając prawdziwego „bezpieczeństwa”
 – 
Pepe
25 lipiec 2011, 20:38

2 odpowiedzi

Najlepsza odpowiedź

Możesz użyć skrótu, takiego jak http://www.mydomain.com/jsp/get_article.jsp?hash=[wartość skrótu base32 MD-5] lub podobnego. Następnie masz hash tabeli -> artykuł na serwerze (ponieważ hashy są wystarczająco unikalne, nie musisz przejmować się „zderzeniami” między hashami różnych artykułów). Oczywiście nadal musiałbyś mieć hash po stronie klienta, więc albo musisz go tam obliczyć, albo po prostu podać go na stronie.

Hash byłby haszem nad samym artykułem, więc będzie on zawsze unikalny dla artykułu i nie można go odgadnąć bez znajomości rzeczywistego artykułu. Tytuły są zbyt łatwe do odgadnięcia.

Jakkolwiek na to spojrzysz, nie uzyskasz dzięki temu doskonałego zabezpieczenia, ale możesz uzyskać bezpieczeństwo od osób próbujących odgadnąć adres URL bez żądania wcześniejszej strony. Innymi słowy, to dużo pracy bez zbytniego zysku. Ale ponieważ próbujesz osiągnąć system DRM, prawdopodobnie jest to najlepsze, co możesz uzyskać...

1
Maarten Bodewes 26 lipiec 2011, 01:26

Nie wiem, co rozumiesz przez „nieczytelny”. Myślę, że krótka odpowiedź brzmi: nie da się tego zrobić. Adres URL musi być widoczny dla przeglądarki lub w jaki sposób będzie żądać zasobu? Twoje pytanie brzmi trochę jak powiedzenie: „Jak mogę pozwolić ludziom dzwonić do mnie, nie podając im mojego numeru telefonu?”

Przypuszczam, że mógłbyś zaszyfrować swoje adresy URL. Ale dlaczego?

Jeśli w adresie URL znajdują się informacje, których nie chcesz, aby użytkownik zobaczył, to ... nie umieszczaj ich w adresie URL. Na przykład, gdybyś miał system pomocy dla klientów, który kieruje użytkowników, którzy udzielają niemożliwych odpowiedzi do sekcji „kretyn” w twoim systemie, nie ustawiłbym adresu URL „http://example.com/help/moron.jsp?screen =17". Nazwij to czymś nieokreślonym. A poważniej, z pewnością nie należy umieszczać hasła klienta ani innych poufnych informacji w adresie URL. Przechowuj tego rodzaju rzeczy w danych po stronie serwera, do których uzyskuje się dostęp za pośrednictwem „bezpiecznych” danych, takich jak identyfikator użytkownika.

0
Jay 25 lipiec 2011, 20:45