Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)

Wczoraj napisał do mnie lekko zaskoczony kolega, który po wcześniejszej rozmowie ze mną postanowił na swoim VPSie przejść z Nginx a OpenLiteSpeed. Głównie ze względu na wygodę. I to nawet nie chodzi o to, że dużo ustawień (większość?) można zrobić z poziomu panelu zarządzania w przeglądarce internetowej, bo czasem to tylko wydłuża czas potrzebnym, do wykonania zadania. Zresztą skoro kolega używał Nginx, to co jak co, ale konfiguracja bezpośrednio w plikach konfiguracyjnych nie jest mu raczej obca. Bardziej chodziło o obsługę plików .htaccesss, dzięki czemu wiele aplikacji webowych (np. WordPress) potrafi nie tylko samodzielnie skonfigurować sobie środowisko, ale i zabezpieczyć odpowiednimi regułami w tym pliku to, co powinno być zabezpieczone.

Blokada dostępu „z zewnątrz” do katalogu w OpenLiteSpeed

Niestety to, że OLS (OpenLiteSpeed) w przeciwieństwie do Nginx obsługuje pliki .htaccess, nie oznacza, że robi to tak dobrze (kompleksowo) jak Apache2, a tym samym nie zawsze będzie to tak automatyczne, jak być by mogło.

Weźmy np. na warsztat taką regułę, którą dość często można spotkać w plikach .htaccess:

deny from all

Jest to reguła, która blokuje dostęp do katalogu z zewnątrz, czyli m.in. przez przeglądarkę internetową. Reguła, z której korzysta m.in. wtyczka WooCommerce (sklep internetowy na WordPressie), a która ma za zadanie chronić pliki do pobrania przypisane do produktów cyfrowych, przed ich nieautoryzowanym pobieraniem, gdy ktoś pozna ich adres URL. Bo choć WooCommerce po poprawnej konfiguracji i poprawnym dodawaniu plików do pobrania do produktów dość dobrze chroni prawdziwy adres plików, to nie jest on niemożliwy do uzyskania. Zwłaszcza gdy ktoś wie, jak to działa, i jaka jest struktura plików, oraz kupił wcześniej dany plik (tak, to może być niekoniecznie wymagane, ale bardzo pomocne).

Przykładowy link do pliku:

https://sklep.webinsider.pl/wp-content/uploads/woocommerce_uploads/2023/05/demo-wipl8p.pdf

I tak wracamy do mojego kolegi, który odkrył, że u niego to nie działa i jak ktoś pozna adres pliku – co nie jest takie łatwe, ale jest możliwe, to może go pobrać, choć odpowiednia reguła (deny from all), w odpowiednim w pliku (.htaccess) i w odpowiednim katalogu się znajduje (/wp-content/uploads/woocommerce_uploads).

Wynika to z tego, że choć OpenLiteSpeed (OLS) obsługuje pliki .htaccess, to nie obsługuje wszystkich reguł, w tym tak popularnych (powszechnych) jak właśnie „deny from all”. I niestety, ale trzeba to ręcznie skorygować. Czy to za pomocą pliku .htaccess i jakiejś reguły typu „rewrite” (RewriteRule), czy też w panelu zarządzania OpenLiteSpeed wykorzystać sekcję „context” w wybranym hoście.

W tym celu należy przejść do listy hostów (Virtual Hosts), następnie wybrać konkretną stronę i przejść do zakładki „context”. Tutaj dodajemy (definiujemy) nowy „static context”, gdzie w polu URL wpisujemy katalog, do którego dostęp „z zewnątrz” ma być zablokowany, np. dla WooCommerce będzie to zapewne coś w stylu:

/wp-content/uploads/woocommerce_uploads

I w opcji „accessible” wybieramy „no”. To wszystko. Wystarczy na koniec zrestartować OpenLiteSpeed, by zmiany weszły w życie. Bardzo prawdopodobne, że wyczyszczenie cache też będzie potrzebne…

To tylko podstawowej konfiguracji, która ma zastąpić „deny from all”, ale poniżej opcji „accessible” znajduje się jeszcze wiele innych, pozwalających taką blokadę zmodyfikować, czy to dla wybranych IP (dostęp lub blokada), czy też wprowadzić blokadę dostępu na hasło…

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)
Patryk
Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)