From 4db876378b935649f7e0ddce8121e6aa9ae4ff6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz> Date: Fri, 6 Jan 2023 17:41:19 +0100 Subject: [PATCH] Zasah proti trackerum --- VERSION | 2 +- lib/PZ/Controller/Shortcut.pm | 13 +++++++++++++ lib/PZ/Helpers/Core.pm | 8 ++++++-- openapi.yaml | 3 +-- templates/404.html.ep | 2 +- templates/tracker.html.ep | 18 ++++++++++++++++++ 6 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 templates/tracker.html.ep diff --git a/VERSION b/VERSION index 7ec1d6d..ccbccc3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.0 +2.2.0 diff --git a/lib/PZ/Controller/Shortcut.pm b/lib/PZ/Controller/Shortcut.pm index 82133dc..33992fc 100644 --- a/lib/PZ/Controller/Shortcut.pm +++ b/lib/PZ/Controller/Shortcut.pm @@ -18,6 +18,19 @@ sub redirect ($c) { return; } + TRACKER: + foreach my $tracker ( $c->trackers() ) { + if ( $c->param($tracker) ) { + $c->stash( + url => $shortcut->url, + tracker_name => $tracker, + tracker_value => $c->param($tracker), + ); + $c->render( 'tracker' ); + return; + } + } + $shortcut->update({ counter => $shortcut->counter + 1 }); diff --git a/lib/PZ/Helpers/Core.pm b/lib/PZ/Helpers/Core.pm index 92e8149..f6f43b5 100644 --- a/lib/PZ/Helpers/Core.pm +++ b/lib/PZ/Helpers/Core.pm @@ -98,12 +98,16 @@ sub register { return $shortcut; }); + $self->helper( trackers => sub { + return @{ TRACKERS() }; + }); + $self->helper( sanitize_url => sub { - my $c = shift; + my $c = shift; my $url = Mojo::URL->new(shift); - foreach my $tracker ( @{ TRACKERS() }) { + foreach my $tracker ( $c->trackers() ) { $url->query({ $tracker => undef }); } return $url->to_string; diff --git a/openapi.yaml b/openapi.yaml index 9c5c6ad..9294a49 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -34,7 +34,6 @@ components: type: string description: URL pro přesměrování maxLength: 1024 - required: true code: type: integer description: Kód přesměrování @@ -98,7 +97,7 @@ paths: security: - Token: [] summary: "Seznam zkratek" - operationId: Shortcuts + operationId: ShortcutList x-mojo-to: shortcut#list responses: 200: diff --git a/templates/404.html.ep b/templates/404.html.ep index 0d2525b..0e73c2b 100644 --- a/templates/404.html.ep +++ b/templates/404.html.ep @@ -1,5 +1,5 @@ % layout 'default'; -<h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-8">Zkratka "<%= $c->stash->{shortcut} %>" neexistuje</h1> +<h1 class="head-base mb-8">Zkratka "<%= stash->{shortcut} %>" neexistuje</h1> diff --git a/templates/tracker.html.ep b/templates/tracker.html.ep new file mode 100644 index 0000000..5aad898 --- /dev/null +++ b/templates/tracker.html.ep @@ -0,0 +1,18 @@ +% layout 'default'; + +<h1 class="head-base mb-8">Pozor! Zkratka obsahuje šmírovátko!</h1> + +<div class="content-block"> +<p>Odkaz který se snažíš použít obsahuje sledovací část, konkrétně:</a> + +<p class="alert alert--red-600 alert--faded"><%= $tracker_name %>=<%= $tracker_value %></p> + +<p> +Tuto část do posílaného odkazu automaticky přidávají platformy nerespektující soukromí uživatelů, +v tomto případě konkrétně facebook nebo google. Přidáním sledovacího řetězce do odkazu se snaží +monitorovat jeho šíření odkazů i mimo svoje panství. My je v tom podporovat nebudeme, a proto prosím +sledovací část z odkaz u odstraň. +</p> + +<p><a href="<%= $url %>">Pokračovat na odkaz</a></p> +</div> -- GitLab