poznan icon indicating copy to clipboard operation
poznan copied to clipboard

Skryptowanie nginx-a za pomocą js-a. Case study na rzecz wydajności i prywatności

Open kuba-orlik opened this issue 2 years ago • 3 comments

Na https://www.internet-czas-dzialac.pl/ wdrożyłem proxy nginx-owe, które przepisuje HTML-a w locie i podmienia URL-e do zewnętrznych obrazków umieszczane przez CMS-a na adres proxy, które cache'uje obrazki i zapobiega ujawnianiu Origina i Referera naszych czytelników do podmiotów trzecich.

Rewriting i kryptograficzna walidacja linków zapobiegająca nadużyciom jest napisana w js, za pomocą nginx-owego runtime'u js-owego. Ten moduł daje potężne możliwości i pozwala nieźle odciążyć aplikację lub wpływać na zachowanie aplikacji, których kodu nie możemy/nie chcemy/nie potrafimy zmienić.

Feedback welcome :)

kuba-orlik avatar Jun 08 '22 07:06 kuba-orlik

Podoba mi się ten pomysł. Do tej pory byłem przekonany że jak ngnix to tylko lua.

orchowski avatar Jun 22 '22 13:06 orchowski

Na tyle mało zrozumiałem z tego zagadnienia, że chętnie bym posłuchał. Chociażby aby bardziej zrozumieć "dlaczego?" 😉 tzn. co to za nadużycia przed którymi ta technika nas broni 🤔

tniezurawski avatar Jun 27 '22 09:06 tniezurawski

U nas use case był taki - korzystamy z CMS-a, który po wklejeniu linka do artykułu generuje ładny "card", który zawiera coverowy obrazek z tego artykułu i krótki opis. Ten obrazek jest serwowany z domeny, na ktorej jest ten artykuł. Przez co wyciekamy adres IP (i czasem origin) do podmiotu trzeciego. A to już problem z punktu widzenia RODO. Chcieliśmy zachować funkcjonalność cardów z zachowaniem prywatności, bez grzebania w kodzie CMS-a. I udało nam się to zrobić właśnie za pomocą js-a w nginx :D

O samym RODO w kontekście webu też mogę zrobić jakąś osobną prezkę, bo mam obszerne doświadczenie z UODO w tej materii ;)

kuba-orlik avatar Jun 27 '22 10:06 kuba-orlik

@kuba-orlik Cześć Dalej jesteś zainteresowany poprowadzeniem prezentacji? Czy odpowiadałby Ci termin 27 kwietnia (czwartek)?

SebastianPozoga avatar Apr 06 '23 17:04 SebastianPozoga

Cześć! Nadal jestem zainteresowany poprowadzeniem prezentacji. Niestety 27. kwietnia jestem na wyjeździe służbowym i wtedy akurat nie dam rady poprowadzić. Jestem za to otwarty na kolejne terminy!

kuba-orlik avatar Apr 07 '23 17:04 kuba-orlik

Daję znać, że temat nadal u mnie aktualny i mogę go przedstawić przy którejś z nastepnych okazji :)

kuba-orlik avatar Jul 03 '23 07:07 kuba-orlik

Cześć Następne spotkanie planujemy 10.10.2023. Czy chcesz w tym terminie poprowadzić prezentację?

SebastianPozoga avatar Sep 05 '23 04:09 SebastianPozoga

Pasuje, z chęcią poprowadzę :)

kuba-orlik avatar Sep 05 '23 11:09 kuba-orlik

Dodałem stronę wydarzenia. Na początku tygodnia ruszamy z promocją. Jeśli masz jakieś uwagi / chcesz coś dodać pisz :-) https://www.meetup.com/meet-js-poznań/events/296293629/

SebastianPozoga avatar Sep 23 '23 08:09 SebastianPozoga

Bardzo dziękujemy za poprowadzenie prezentacji. Niestety z uwagi na błąd przy ustawieniu wzmacniacza (problemy z dźwiękiem) nie możemy opublikować nagrań :-/ Postaram się, żeby w przyszłości nie było takich problemów.

Mam nadzieję, że Ty również wyciągnąłeś wiele z prezentacji. Nabyłeś nowe umiejętności lub dopracowałeś już posiadane. Liczymy, że będziesz z nami :-) zarówno jako uczestnik, jak i prowadzący :-)

SebastianPozoga avatar Oct 12 '23 17:10 SebastianPozoga