Tag: nginx
-
NGINX: Blokowanie nieprawidłowych wartości nagłówka Referer
Feb 14, 2021
W tym wpisie chciałbym omówić oraz zaprezentować sposoby na blokowanie żądań zawierających niepożądane wartości, które może przyjąć nagłówek Referer. Głównie chodzi o to, aby treść...
-
NGINX: Dlaczego nie zawsze if-is-evil?
Sep 10, 2020
Podczas studiowania meandrów serwera NGINX, kilkukrotnie spotkałem się ze stwierdzeniem, że wyrażeń z if należy bezwzględnie unikać. Na pewno są ku temu pewne przesłanki, zwłaszcza...
-
NGINX: Wsparcie dla protokołów HTTP/3 i QUICK
Jun 15, 2020
Kilka dni temu, inżynierowie pracujący nad rozwojem serwera NGINX ogłosili wsparcie dla technologii QUICK + HTTP/3. Jest to wersja przedpremierowa (testowa), oparta na szkicu IETF...
-
Negocjacja wersji TLS i pakiet szyfrów sygnalizacyjnych
Apr 14, 2020
Negocjacja połączenia z wykorzystaniem protokołu TLS składa się kilku etapów. Podczas tego procesu może zostać wysłanych przez klienta wiele różnych komunikatów w wiadomości ClientHello takich...
-
NGINX: Maksymalna ilość równoczesnych połączeń
Feb 17, 2020
Zastanawiałeś się kiedyś, ile maksymalnie równoczesnych połączeń jest w stanie obsłużyć serwer NGINX? A także jaki wpływ na ich ilość mają dyrektywy worker_processes, worker_connections oraz...
-
Zalecenia dot. wersji protokołu TLS
Feb 11, 2020
Istnieje wiele potencjalnych zagrożeń podczas wdrażania protokołu TLS. Każda konfiguracja wykorzystująca ten protokół powinna spełniać zalecenia poprawnej implementacji i być zgodna ze standardami branżowymi. Wydawać...
-
NGINX: OCSP Stapling
Jan 25, 2020
Protokół OCSP pozwala na weryfikację stanu certyfikatu x509 i został zdefiniowany w RFC 6960 [IETF]. Zasada działania jest bardzo prosta: klient OCSP wysyła żądanie o...
-
NGINX: Logika przetwarzania żądań
Jan 18, 2020
Proces przetwarzania żądań przez serwer NGINX na pierwszy rzut oka może wydawać się skomplikowany. Cała logika jest jednak prosta i dobrze przemyślana.
-
NGINX: Wyeliminowanie podatności związanej ze zbyt niskimi parametrami DH
Jan 14, 2020
W starszych wersjach serwera NGINX istniała luka, która pozwalała na wykorzystanie podatności o nazwie Logjam i związana była ze zbyt niskimi rozmiarami parametrów Diffie-Hellman. Problem...
-
NGINX: Nagłówek X-Forwarded-For
Jan 2, 2020
X-Forwarded-For (XFF) to niestandardowy nagłówek HTTP, który identyfikuje adres IP klienta dla oryginalnego żądania, które zostało dostarczone przez serwer proxy lub load balancer, dzięki czemu...
-
NGINX: TLSv1.3 i Zero Round-Trip Time
Oct 3, 2019
TLSv1.3 ma szczególny tryb wznawiania sesji, w którym pod pewnymi warunkami można wysłać dane do serwera podczas pierwszego skoku (0-RTT). Powoduje to znaczący wzrost wydajności...
-
NGINX: Nazwy domen i dyrektywa server_name
Sep 12, 2019
Dokładne nazwy, nazwy symboli wieloznacznych rozpoczynające się od gwiazdki i nazwy symboli wieloznacznych kończące się gwiazdką są przechowywane w trzech tablicach skrótów powiązanych z dyrektywami...
-
NGINX: Luki w implementacji HTTP/2
Aug 2, 2019
W maju 2019 r. inżynierowie Netflixa odkryli szereg luk bezpieczeństwa w kilku implementacjach HTTP/2. Zostały one zgłoszone każdemu z zainteresowanych dostawców i opiekunów. NGINX był...
-
NGINX: Optymalizacja sesji SSL/TLS
Jul 21, 2019
Optymalizacja sesji SSL/TLS powinna być jednym z ważniejszych kroków, które należy wykonać, w celu poprawienia ogólnych wrażeń użytkowników podczas korzystania z aplikacji internetowych. Dotyczy to...
-
NGINX: Obsługa potencjalnie niebezpiecznych nagłówków żądań
May 11, 2019
Moim zdaniem możliwość obsługi potencjalnie niebezpiecznych nagłówków żądań protokołu HTTP nie jest samą luką, ale raczej wynikiem błędnej konfiguracji, w tym walidacji, która w niektórych...
-
NGINX: Poprawne przekazywanie nagłówka Host
Mar 27, 2019
Nagłówek Host jest jednym z najważniejszych nagłówków w komunikacji HTTP. Informuje on serwer, którego wirtualnego hosta ma użyć, pod jaki adres chcemy wysłać zapytanie oraz...
-
NGINX: sendfile, tcp_nodelay i tcp_nopush
Feb 18, 2019
Większość artykułów dotyczących optymalizacji wydajności serwera NGINX zaleca użycie opcji sendfile, tcp_nodelay i tcp_nopush. Niestety, niektóre z nich nie mówią o tym, jak działają, jaki...
-
NGINX: Obsługa połączeń, zdarzenia oraz procesy
Jan 27, 2019
NGINX obsługuje różne metody przetwarzania połączeń, które zależą od używanej platformy/systemu. Zwykle nie ma potrzeby jawnego podawania metody przetwarzania żądań, ponieważ NGINX domyślnie zastosuje optymalną...
-
NGINX: Analiza ruchu za pomocą modułu mirror
Jan 14, 2019
Kopiowanie ruchu jest bardzo przydatną funkcją, która nadaje się świetnie do diagnozowania błędów oraz szerszej analizy obsługiwanych żądań. Możliwość taką dostarcza wbudowany moduł ngx_http_mirror_module.
-
NGINX: Jak poprawnie obsługiwać nagłówki?
Dec 17, 2018
Nagłówki to jedna z najistotniejszych rzeczy podczas komunikacji między klientem a serwerem. NGINX dostarcza kilka sposobów ich obsługi, lecz nieodpowiednie użycie któregoś z nich może...
-
NGINX: Analiza awarii za pomocą zrzutów pamięci
Dec 1, 2018
NGINX jest niewiarygodnie stabilnym programem, jednak czasami może się zdarzyć, że nastąpi niestandardowe zakończenie jego działania (np. naruszenie ochrony pamięci). W takiej sytuacji powinieneś wykorzystać...
-
NGINX: Blokowanie niebezpiecznych metod
Nov 19, 2018
Zwykły serwer HTTP obsługuje metody GET i HEAD, za pomocą których klient pobiera zawartość statyczną i dynamiczną, a także metodę POST, która służy do wysyłania...
-
NGINX: Ukryte pliki i katalogi
Aug 17, 2018
Ukryte pliki i katalogi nigdy nie powinny być publicznie dostępne — czasami krytyczne dane są publikowane podczas wdrażania aplikacji. Jeśli używasz systemu kontroli wersji, zdecydowanie...
-
NGINX: Kontekst upstream i połączenia KeepAlive
Jul 21, 2018
Oryginalny model HTTP (w tym HTTP/1.0) definiuje połączenia krótkotrwałe jako standardową metodę komunikacji. Każde żądanie HTTP jest realizowane we własnym połączeniu; oznacza to, że uzgadnianie...
-
NGINX: Przetwarzanie żądań a niezdefiniowane nazwy serwerów
Apr 19, 2018
Jak wiemy, nagłówek Host informuje serwer, którego wirtualnego hosta ma użyć. Nagłówek ten można również modyfikować, co może pozwolić na ominięcie filtrów lub przekazanie żądań...
-
Katalog .git w web aplikacji
Mar 9, 2018
Jednym z często popełnianych błędów, który stwarza ogromny problem i narusza polityki bezpieczeństwa aplikacji, jest udostępnianie katalogu .git w zasobach publicznych.
-
NGINX: Dokładne dopasowanie lokalizacji
Feb 25, 2018
Dokładne dopasowania lokalizacji są często używane do przyspieszenia procesu wyboru poprzez natychmiastowe zakończenie wykonywania algorytmu związanego z wyborem i dalszym przetwarzaniem żądań. Jeśli zostanie znalezione...
-
NGINX: Dyrektywa try_files
Jan 20, 2018
Dyrektywa try_files jest bardzo interesującą dyrektywą. Pochodzi ona z modułu ngx_http_core_module i sprawdza istnienie nazwanego zestawu plików lub katalogów (sprawdza pliki warunkowo pasujące do wyrażenia...
-
NGINX: rewrite kontra return
Jan 8, 2018
Protokół HTTP pozwala serwerom przekierować żądanie klienta do innej lokalizacji. Jest to przydatne podczas przenoszenia zawartości pod nowy adres URL, usuwania stron lub zmiany nazw...
-
NGINX: root vs alias
Dec 21, 2017
Za pomocą dyrektywy alias możesz mapować nazwę na inną nazwę pliku, natomiast dyrektywa root określa jasno wskazany plik w danym katalogu. W pierwszym przypadku NGINX...
-
NGINX: Poprawne definiowanie dyrektyw nasłuchiwania
Oct 21, 2017
NGINX tłumaczy wszystkie niepełne dyrektywy listen zastępując brakujące wartości ich wartościami domyślnymi. Co więcej, oceni dyrektywę server_name tylko wtedy, gdy będzie musiał rozróżnić bloki serwera...
-
NGINX: Ujawnianie wersji i sygnatur serwera
Jul 19, 2017
Ujawnienie wersji oraz sygnatur serwera NGINX może być niepożądane, szczególnie w środowiskach wrażliwych na ujawnianie informacji (tj. przetwarzających dane krytyczne). NGINX domyślnie wyświetla numer wersji...
-
NGINX: Omówienie składni plików konfiguracyjnych
Jun 29, 2017
NGINX używa mikro języka programowania w swoich plikach konfiguracyjnych, który ma prostą i bardzo przejrzystą strukturę. Na projekt tego języka duży wpływ miał Perl i...
-
NGINX: Usprawnienie zamykania procesów roboczych
Jan 2, 2017
Mechanizm ten powinien się przydać, jeśli chcesz poprawić czas zamykania procesów roboczych serwera NGINX. Dyrektywa worker_shutdown_timeout określa limit czasu, który będzie używany podczas płynnego zamykania...
-
NGINX: Nieodpowiednie użycie dyrektywy deny
May 21, 2016
Dyrektywy allow oraz deny dostarczane są z modułem ngx_http_access_module i umożliwiają zezwolenie na dostęp lub jego ograniczenie do wybranych adresów klientów. Obie nadają się do...