Aktywne Wpisy

Atreyu +722
Treść przeznaczona dla osób powyżej 18 roku życia...

PodniebnyMurzyn +475
Na tych z-------h googlach to już chyba można dawać wielmożnym przedsiębiorcom same 5 bo inaczej to hejt i mowa nienawiści
Za takiego c-------o burgera z zimnymi frytkami ta ocena i tak jest zawyżona
Za takiego c-------o burgera z zimnymi frytkami ta ocena i tak jest zawyżona
źródło: image_picker_F6AF3F48-AF3E-4010-93DB-BC6AFFB70835-536-00000079CD614E2B
Pobierz



Mirki admini i programiciele, wpadłem na pewną ciekawą problemowość związaną z serwerem Apache 2.4 (testuję na wersji apache24-2.4.27_1). Otóż mam na vhoście autoryzację poprzez basic auth (czyli user/password) oraz ten sam vhost wymaga uwierzytelnienia przy pomocy certyfikatu SSL (SSLVerifyClient require). Wszystko fajnie działa, sprawnie i do tej pory myślałem, że nawet nieźle bezpiecznie. Dzisiaj potrzebowałem napisać sobie skrypt w bashu do crontabu, aby co kilka minut odpytywał mi serwer po adresie URL (pomyślałem o wget) i uruchamiał podfunkcję webserwisu (do rejestracji zamówień z obcego API, np. https://serwisxxx.pl/wczytajzapi, ale to nieistotne). Ku mojemu zdziwieniu, apache w w/w wersji zanim otrzyma user/password odpala mi stronę., tzn. oczywiście nie daje do niej dostępu i po stronie Klienta otrzymuję komunikat unauthorized:
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed.
Ale po stronie serwera skrypt wykonuje się i kończy działanie tak, jakby był wywołany przez zautoryzowanego usera. Widzę to po logach mojego systemu webserwisowego.
Dzisiaj jest za późno i nie chce mi się już grzebać, ale jutro sprawdzę czy przyjmuje też dane z POSTa, bo z GET jedzie wszystko. Wpisałem parametry argumentów i wszystko skrypt PHP przyjął na klatę i wykonał. To samo próbowałem zrobić na firefoxie, operze, chromie z windowsa i żaden z Klientów tego nie potrafi. W przypadku wget się udaje za każdym razem.
Już w/w scenariusz uważam za rewolucję i poważną awarię zabezpieczeń. Jeśli się okaże, że POSTa też chwyta to jest k---a ciekawie. Najnowsze wydanie Apache 2.4.
Komenda do sprawdzenia jak kogoś interesuje to:
wget --no-check-certificate --certificate=sslcert.crt --private-key=sslkey.key --user=username --password=PASSCODE https://adresserwera.pl/komenda?q=XXX
Po wywołaniu w/w w logach widzę dwukrotne (błędne, bo powinno tylko raz) przekręcenie pętli która pobiera dane z obcego API w moim systemie. Jak wyrzucę user/password z w/w polecenia wget to w logach widzę tylko jedno przekręcenie pętli, a wget zwraca:
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed.
Czujecie? Mieliście podobne problemy czy raczej zawsze chodzi tylko o d--y? A może to normalne zachowanie serwera www, a ja się czepiam na siłę?
źródło: comment_yd0nLNBTb7iqw2Aum6mxHyOXKK2igf4n.jpg
PobierzMam coś w tym stylu:
194
195 AuthType Basic
196
ServerName backoffice.******.com
165
166 DocumentRoot
Czy nie masz przypadkiem ustawionego ErrorLog 401 na plik php?
Przenieś może autoryzacje z Location do Directory. Wydaje mi się, że Location jest przetwarzane dopiero po Files.
strace -ffvvtt -s 60000 -o /tmp/strace -p pidapache -p pidapache -p pidapachekiedy wykonujesz jedno zapytanie. W tym strace powinieneś widzieć, że apache robi connect() do socketa z php. Powinieneś też widzieć, że apache wysyła zapytanie do php, odsyła 401 do