Adrian Głowacki

Adrian Głowacki Żołnierz, KPW
Świonoujście

Temat: Bezpieczeństwo adresów url w Ajax

Witam!
Ostatnio siedziałem i sobie dłubałem w skryptach, próbowałem ukryć adres url, który zawiera adres pliku php gdzie zostają przekazane wartości do BD. Niestety bezskutecznie, więc chwyciłem za mądre książki i nic na ten temat nie wyczytałem, a przecież taka kwestia powinna się znaleźć w spisie treści w dziale bezpieczeństwo.
Pytanie brzmi jak dokonać ukrycia takiego adresu, żeby użytkownik po naciśnięciu wyświetl źródło strony nie miał możliwości pokombinowania i dotarcia w miejsce gdzie będzie wiedział za dużo?
Adam Pawliczek

Adam Pawliczek Usability expert, UX
designer,
Interaction
specialist

Temat: Bezpieczeństwo adresów url w Ajax

Pytanie: nawet jak odkryje ten URL to jak miałby go w praktyce wykorzystać?
Andrzej Prażmo

Andrzej Prażmo programista .NET,
właściciel firmy SEE
Software

Temat: Bezpieczeństwo adresów url w Ajax

Adrian G.:
Witam!
Ostatnio siedziałem i sobie dłubałem w skryptach, próbowałem ukryć adres url, który zawiera adres pliku php gdzie zostają przekazane wartości do BD. Niestety bezskutecznie, więc chwyciłem za mądre książki i nic na ten temat nie wyczytałem, a przecież taka kwestia powinna się znaleźć w spisie treści w dziale bezpieczeństwo.
Nie wyczytałeś, bo zabezpieczanie skryptu po stronie klienta zazwyczaj nie ma sensu - nie masz żadnej kontroli nad tym, co użytkownik robi ze swoją przeglądarką. Zabezpiecza się głównie skrypty po stronie serwera i generalnie są to dwa poziomy: sprawdzenie, czy użytkownik może uruchomić daną akcję oraz czy posiada uprawnienia do przeglądania jakichś konkretnych danych.
Adrian Głowacki

Adrian Głowacki Żołnierz, KPW
Świonoujście

Temat: Bezpieczeństwo adresów url w Ajax

Adam P.:
Pytanie: nawet jak odkryje ten URL to jak miałby go w praktyce wykorzystać?

Chodzi o to że mając adres url mogę odczytać zawartość treści pod tym adresem więc w sumie mam dostęp do wszystkich danych. A jeśli dane stanowią hasło do BD to już jest dziękuje dobranoc....

Andrzej dzięki za odpowiedź zawsze zastanawiałem się właśnie w jaki sposób "porządne serwisy" zabezpieczają się przed tak prosta metodą nazwijmy pseudo ataku. Wydawało mi się że robiąc funkcje sprawdzające podczas walidacji wystarczy.

A tak nawiasem mógłby ktoś polecić literaturę, gdzie będę mógł poczytać Ten post został edytowany przez Autora dnia 29.07.13 o godzinie 12:00
Andrzej Prażmo

Andrzej Prażmo programista .NET,
właściciel firmy SEE
Software

Temat: Bezpieczeństwo adresów url w Ajax

Adrian G.:
Chodzi o to że mając adres url mogę odczytać zawartość treści pod tym adresem więc w sumie mam dostęp do wszystkich danych. A jeśli dane stanowią hasło do BD to już jest dziękuje dobranoc....
Od zabezpieczania plików przed niepowołanym dostępem jest plik htaccess. Tam możesz zablokować możliwość surfowania po pewnych katalogach czy też wyświetlania specyficznych plików (np. application.ini znany z Zenda). W przypadku ASP.NET jest wbudowany mechanizm zabezpieczający przed wyświetleniem pliku web.config.
Andrzej dzięki za odpowiedź zawsze zastanawiałem się właśnie w jaki sposób "porządne serwisy" zabezpieczają się przed tak prosta metodą nazwijmy pseudo ataku. Wydawało mi się że robiąc funkcje sprawdzające podczas walidacji wystarczy.

A tak nawiasem mógłby ktoś polecić literaturę, gdzie będę mógł poczytać
To zależy o jakim środowisku mówimy. Jeśli decydujesz się na PHP, to ja polecam jakiś framework typu MVC. Np. w Zendzie jest biblioteka ACL, dzięki której można kontrolować dostęp użytkownika.
Tomasz M.

Tomasz M. never go full
retard!

Temat: Bezpieczeństwo adresów url w Ajax

Adrian G.:
Adam P.:
Pytanie: nawet jak odkryje ten URL to jak miałby go w praktyce wykorzystać?

Chodzi o to że mając adres url mogę odczytać zawartość treści pod tym adresem więc w sumie mam dostęp do wszystkich danych. A jeśli dane stanowią hasło do BD to już jest dziękuje dobranoc....

No po to sięrobi wszelkie mechanizmy autentykacji i autoryzacji, co by sobie pierwszy z brzegu nie POSTował na URL byle co ;)
Sławomir Jach

Sławomir Jach Programista,
DreamLab

Temat: Bezpieczeństwo adresów url w Ajax

Było już powiedziane, że to nic że użytkownik może w źródle zobaczyć całą ścieżkę dajmy na to do skryptu php. Cały sens jest tego taki, że on nie jest w stanie zobaczyć jak wygląda ten skrypt ponieważ jest on interpretowany przez webserwer a wyświetlane użytkownikowi tylko to co w skrypcie jest po "echo" itp.

Także jeżeli będziesz miał w tym pliku hasła do połączenia bazy danych w jakiejś tablicy PHPowej to mając taki adres i tak osoba z zewnątrz nie zobaczy co jest w środku.

Nie szukając daleko popatrz co leci w konsoli na golden linie, jest jakiś skrypt pewnie phpowy, ale nie widzisz jego kodu a jedynie wynik jaki zwraca (w tym przypadku struktura json)Ten post został edytowany przez Autora dnia 29.07.13 o godzinie 18:40

konto usunięte

Temat: Bezpieczeństwo adresów url w Ajax

1. Wszystko co pokazujesz użytkownikowi w przeglądarce jest jawne i ogólnodostępne. Nie ma możliwości ukrycia tego w żaden sposób. Można takie rzeczy utrudniać na wiele sposobów ale po co ?

2. Wystawiając jakieś API pod ajax czy cokolwiek, zadbaj po prostu o to żeby nie można było dobrać się do większej ilości danych niż użytkownik potrzebuje. Świetnym przykładem jest jedna witryna która ma szukajkę użytkowników z autocomplete. Trik polegał na tym że autocomplete miał stronnicowanie i chyba z lenistwa wysyłany był obiekt użytkownika w formacie JSON. Efekt ? Relatywnie prostym skryptem szło zaciągnąć dane wszystkich użytkowników serwisu.
Gdzie wystarczyło napisać skrypt który podpowiada tak z 5 użytkowników najbardziej pasujących do podanej frazy który przyjmuje keyword i zwraca arraya z 5 nazwami...

3. Możesz ukrywać co chcesz ale prawda jest taka że ktoś kto ma minimum wiedzy weźmie otworzy witrynę w firefox z dodakiem live headers (najprościej) i sobie przejrzy całą komunikację klient-serwer jeżeli mu to będzie potrzebne. Nawet jak nie rozszyfruje Ci kodu bo go zaciemnisz różnymi narzędziami to i tak rozszyfruje metodę.

W skrócie. Nie pisz tak żebyś musiał coś ukrywać tylko pisz tak żebyś nie musiał tego ukrywać. API powinno dostarczać TYLKO to co musi dostarczać. Nawet jak zrobisz je elastyczne, zadbaj o whiteliste tak by tylko te fragmenty api które miały działać działały dopóki nie potrzebujesz czegoś innego.

Następna dyskusja:

jQuery - ajax - przekazanie...




Wyślij zaproszenie do