From 3bab2ba3ac3d4547c23d624177c0a1f84c7349cd Mon Sep 17 00:00:00 2001 From: getimiskon Date: Mon, 13 Feb 2023 23:26:10 +0200 Subject: [PATCH] Added filename randomizing code --- http/sakisafe.pl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/http/sakisafe.pl b/http/sakisafe.pl index 0f86595..fb4269e 100755 --- a/http/sakisafe.pl +++ b/http/sakisafe.pl @@ -12,6 +12,7 @@ use MIME::Types; use warnings; use experimental 'signatures'; use feature 'say'; +use Encode qw(decode encode); plugin 'RenderFile'; # OpenBSD promises. @@ -22,8 +23,9 @@ pledge("stdio cpath rpath wpath inet flock fattr") if $openbsd; # 100 MBs my $MAX_SIZE = 1024 * 1024 * 100; - my @BANNED = qw(); # Add banned IP addresses here +my $RANDOMIZE_FILENAME = 0; # Enable/disable randomization + my $dirname; my $link; @@ -60,6 +62,15 @@ sub handle_file { my @chars = ( '0' .. '9', 'a' .. 'Z' ); $dirname .= $chars[ rand @chars ] for 1 .. 5; my $filename = $filedata->filename; + my $enc = encode( "UTF-8", $filename ); + $filename = $enc; + if ( $RANDOMIZE_FILENAME = 1 ) { + my $extension = $filename; + $extension =~ s/.*\.//; + $filename = ""; + $filename .= $chars[ rand @chars ] for 1 .. 5; + $filename = $filename . "." . $extension; + } carp( color("bold yellow"), "sakisafe warning: could not create directory: $ERRNO", color("reset") )