Tag: best-practices
-
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...
-
Z którego miejsca kontrolować nagłówki odpowiedzi?
May 6, 2020
Wydawać by się mogło, że pytanie to jest pozbawione sensu, ponieważ niezależnie gdzie ustawimy nagłówki odpowiedzi i tak przecież finalnie trafią one do klienta. Jest...
-
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.
-
Jak poprawnie wdrożyć nagłówek HSTS?
Jan 9, 2020
Nagłówek HSTS (HTTP Strict Transport Security) jest jednym z najważniejszych nagłówków bezpieczeństwa. Zapobiega on korzystaniu z niezabezpieczonych połączeń HTTP i wymusza użycie protokołu TLS. W...
-
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...
-
Czy warto polegać na standardach branżowych?
Sep 21, 2019
W świecie IT spotykamy się z wieloma standardami oraz wymaganiami bezpieczeństwa mającymi na celu zapewnienie poufności danych, według których powinniśmy tak, a nie inaczej konfigurować...
-
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: 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ń...
-
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...