1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

SUGESTIA Separacja serwisu i subkonta FTP

Dyskusja w 'Hosting Business Cloud' rozpoczęta przez użytkownika marcinek, 21 Luty 2018.

  1. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    Przekierowanie domen na podkatalog z separacją serwisu powinno działać bez względu na to jak został wywołany adres URL. Inaczej to stwarza możliwość nieuprawnionego dostępu dla użytkownika subkonta FTP, którym wydzielimy dostęp tylko do wybranego katalogu. Przykładowo, tworzymy katalog "/test123" (właściwie to "/home/serwerXXXXXXX/public_html/test123") i przekierujemy na niego jakąś domenę (załóżmy, że "example.com") z separacją serwisu. Jednocześnie zakładamy subkonto FTP z dostępem tylko do tego katalogu i nie chcemy aby ktoś miał dostęp poza ten katalog. Załóżmy, że użytkownik wrzuca przez swój FTP poniższy skrypt w pliku "_test.php":
    <?php
    echo implode("\r\n", glob('../*'));
    ?>

    Po wywołaniu "http://example.com/_test.php" w przeglądarce pojawią się tylko nazwy plików w katalogu bieżącym czyli separacja działa. Ale gdy do tego samego skryptu wejdziemy przez główny adres "http://serwerXXXXXXX.home.pl/test123/_test.php" to zobaczymy pliki z całego serwera!!! W ten sposób użytkownik może sobie omijać restrykcje i ma dostęp praktycznie wszędzie bo wystarczy, że wrzuci sobie odpowiedni skrypt. Równie dobrze zadziałają inne funkcje wejścia/wyjścia takie jak fopen.

    O kant kuli potłuc taką separację i subkonta! Do tego nie ma żadnego ostrzeżenia. Administrator działu IT zakłada subkonta FTP dla pracowników lub nawet partnerów zewnętrznych w przekonaniu, że ci nie będą mieli dostępu tam gdzie nie trzeba a tu takie JAJA!!!
     
  2. Grzesiek

    Grzesiek BOK home.pl home.pl Administrator forum

    Wiadomości:
    3 299
    Docenione treści:
    314
    Wystawiłem priorytetowe zgłoszenie do zespołu technicznego z prośbą o weryfikację oraz komentarz do sprawy QA-51786, odpowiem jak tylko poznam szczegóły.
     
  3. casar

    casar Ekspert

    Wiadomości:
    371
    Docenione treści:
    110
    No i?
    Separację masz dla example.com, a nie dla serwerXXXXXXX.home.pl. A to różnica. Nie chcesz, żeby adres w postaci http://serwerXXXXXXX.home.pl/test123/_test.php działał? Przekieruj serwerXXXXXXX.home.pl .htaccessem na jakiś podkatalog.

    Poza tym, taka forma separacji jest głównie w home.pl, u innych dostawców jej raczej nie doświadczysz.
     
  4. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    @casar
    Po co istnieje opcja przekierowania domeny z separacją, skoro te same skrypty raz można wywołać z separacją a innym razem bez niej (w zależności jaką domenę podamy w adresie URL)?

    Po co istnieją subkonta FTP z wydzielonym katalogiem, skoro użytkownik wrzucając i wywołując odpowiednie skrypty (kiedy separacja nie działa) może gmerać po całym serwerze?

    Po to robi się jakieś opcje, żeby one działały. Zawsze. Inaczej to nie ma sensu.
     
  5. casar

    casar Ekspert

    Wiadomości:
    371
    Docenione treści:
    110
    Separacją zamykasz skrypty w katalogu, na który kieruje domena i wywołujesz je po adresie tej domeny. Adres serwerowy tego nie oferuje. I raczej logicznym jest, że po adresie serwera odwołasz się do dowolnego zasobu który jest gdzieś w katalogu, wystarczy znać ścieżkę. I tu znać, a poznać to jest różnica.

    Poza tym użytkownik, aby wywołać skrypt po adresie serwera, musiałby:
    - znać adres serwera - jak jest kumaty, to uzyska
    - znać pełną ścieżkę do katalogu, w którym jest skrypt, a tego nie uzyska przy połączeniu FTP na koncie z wydzielonym dostępem
     
  6. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    @casar
    >Separacją zamykasz skrypty w katalogu, na który kieruje domena
    W takim razie dany katalog powinien być dostępny przez HTTP tylko poprzez daną domenę, gdzie działa separacja. Wywołania spod innych domen powinny być zablokowane a nie dozwolone z brakiem separacji.

    >znać adres serwera - jak jest kumaty, to uzyska
    Tak. Zakładamy, że użytkownik jest cwany, kumaty i kuty na 4 kopyta! Każdy szanujący się administrator musi tak zakładać. :)

    >znać pełną ścieżkę do katalogu, w którym jest skrypt
    Czy to nie zakrawa na security by obscurity lub tzw. "głebokie ukrycie"?
     
  7. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    Poza tym domeny serwerXXXXXXX.home.pl chyba nie da się nigdzie przekierować ani wyłączyć, zawsze będzie pod nią dostępny cały serwer. To samo będzie gdy w URL-u zamiast domeny podamy adres IP (dotyczy serwerów z własnym IP).
     
  8. casar

    casar Ekspert

    Wiadomości:
    371
    Docenione treści:
    110
    Całkowicie bez sensu. A co jak domena padnie lub zmieni się jej konfiguracja (np. delegacja dla zewnętrznej domeny)?
     
  9. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    Chyba się nie rozumiemy. Mam sobie katalog "xyz", do którego chcę udzielić dostępu przez FTP. Jak zatem zrobić aby użyszkodnik nie miał dostępu nigdzie indziej? Czy mamy jakieś eleganckie rozwiązania czy tylko tajna ścieżka katalogów?
     
  10. casar

    casar Ekspert

    Wiadomości:
    371
    Docenione treści:
    110
    Jak ustawisz konto FTP z dostępem do tego katalogu, to użytkownik tego konta nie wyjdzie powyżej tego katalogu, który będzie jego głównym, ale musisz mieć minimum Cloud Starter, bo w Cloud Basic nie ma możliwości ustawienia katalogu dla konta FTP.
     
  11. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    Własnie o to chodzi w całym moim wątku, że może wyjść! Co prawda nie instrukcją CDUP protokołu FTP ale poprzez wrzucenie odpowiednio spreparowanego skryptu, którego użytkownik następnie uruchomi za pomocą przeglądarki po HTTP. Kiedy separacja nie działa, taki skrypt ma dostęp do całej struktury serwera i może używać wszelkich funkcji wejścia/wyjścia. Może listować katalogi funkcją glob(), otwierać pliki funkcją fopen(), kasować funkcją unlink() i wykonywać inne operacje.
     
    Ostatnia modyfikacja: 22 Luty 2018
  12. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    Dodam, jakby ktoś nie wiedział, że do katalogu nadrzędnego odwołujemy się podając dwie kropki ("..") w ścieżce pliku w parametrze funkcji.
     
  13. casar

    casar Ekspert

    Wiadomości:
    371
    Docenione treści:
    110
  14. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    Dokładnie. Jeśli "domena.xy" ma separację to trik nie zadziała ale gdy wywołamy po adresie głównym "serwerXXXXXXX.home.pl/(...)/skrypt.php" to wtedy ten sam skrypt będzie miał pełny dostęp do wszystkiego.
     
  15. casar

    casar Ekspert

    Wiadomości:
    371
    Docenione treści:
    110
    No tak, ale jak pisałem użytkownik, aby wywołać skrypt po adresie serwera, musiałby:
    - znać adres serwera w postaci nazwa_uslugi.home.pl
    - znać pełną ścieżkę do katalogu, w którym jest skrypt

    Nazwa katalogu do którego wrzuca skrypt nie jest dla niego widoczna przez FTP, chyba, że sam mu ją podasz. Poza tym ścieżka może być dłuższa, co jeszcze bardziej utrudnia sprawę.

    I tak samo będzie u innych dostawców, bo zawsze lokalizacja wyższa ma dostęp do niższej. IMO to jest nie do wyłączenia.
     
  16. Grzesiek

    Grzesiek BOK home.pl home.pl Administrator forum

    Wiadomości:
    3 299
    Docenione treści:
    314
    @marcinek wydaje mi się że @casar idealnie podsumował to zgłoszenie. W tym scenariuszu patrząc z perspektywy administratora i znając dokładnie wszystkie ustawienia, możesz zrobić wszystko. Z perspektywy użytkownika konta FTP, jesteś ograniczony do konkretnego katalogu i nie znasz struktury serwera.

    "Opcja vserver działa w kontekście domeny. Jeśli znamy katalog w którym jest zamknięta domena i odwołamy się przez nazwaserwera.home.pl/katalog/ to działamy w kontekście ścieżki serwera (domeny serwer, a a nie domeny klienta) i to jest normalne.

    Można zablokować dostęp do katalogu w którym działa jdomena umieszczając odpowiedni wpis w .htacess w katalogu głownym serwera: https://pomoc.home.pl/baza-wiedzy/ograniczenie-dostepu-do-stron-ukryty-katalog

    Zablokuje to dostęp do katalogu z poziomu domeny serwera, a jednocześnie nie będzie brany pod uwagę przypadku wywołania z poziomu domeny z veserver gdyż nie jest wtedy czytany .htacess z katalogu głównego serwera lecz z katalogu domeny."
     
  17. marcinek

    marcinek Bywalec

    Wiadomości:
    18
    Docenione treści:
    0
    @Grzesiek
    I to jest chyba odpowiednie rozwiązanie. Nie trzymanie ścieżki nazw katalogów w tajemnicy ale właśnie plik .htaccess o treści "Access deny all". Po umieszczeniu takiego pliku w katalogu nadrzędnym do udostępnianego, faktycznie wywołanie po adresie głównym nie działa (403 Forbidden) a z separacją działa. Zawiodła jednak informacja. Nie każdy wpadnie na to jak działa .htaccess przy separacji i nie każdy będzie świadomy zagrożenia jeśli udostępni komuś subkonto FTP a ktoś pozna bezwględną ścieżkę. Temat jako taki można uznać za zamknięty ale trzeba dopracować dokumentację w dziale pomoc.home.pl.
     
  18. Grzesiek

    Grzesiek BOK home.pl home.pl Administrator forum

    Wiadomości:
    3 299
    Docenione treści:
    314
    Przedstawię ten wątek jako sugestię, być może zebrane tu informacje przydadzą się do stworzenia nowego rozwiązania albo poszerzenia jakiejś funkcjonalności, np. w beta.home.pl QABETA-1249
     

Poleć forum znajomym