From: Michael Tremer Date: Fri, 2 Aug 2013 09:06:40 +0000 (+0200) Subject: tor.cgi: Catch invalid characters in relay name. X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=b0449403e6fc144b8ada72153e97091a8444a9f1 tor.cgi: Catch invalid characters in relay name. --- diff --git a/doc/language_issues.de b/doc/language_issues.de index bbe5e1de7..5336bbfd7 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -409,6 +409,7 @@ WARNING: translation string unused: too long 80 char max WARNING: translation string unused: tor accounting period daily WARNING: translation string unused: tor accounting period monthly WARNING: translation string unused: tor accounting period weekly +WARNING: translation string unused: tor errmsg invalid relay name WARNING: translation string unused: tor exit country WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time diff --git a/doc/language_issues.en b/doc/language_issues.en index 12489577b..9d59bf593 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -442,6 +442,7 @@ WARNING: translation string unused: tor accounting period monthly WARNING: translation string unused: tor accounting period weekly WARNING: translation string unused: tor bridge enabled WARNING: translation string unused: tor errmsg invalid node id +WARNING: translation string unused: tor errmsg invalid relay name WARNING: translation string unused: tor exit country WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time diff --git a/doc/language_missings b/doc/language_missings index a9fa8756e..195b1df0a 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -139,6 +139,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes @@ -370,6 +371,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes @@ -553,6 +555,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes @@ -741,6 +744,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi index 0c5477fd6..14eac4e72 100644 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -74,6 +74,8 @@ if (&Header::blue_used()) { $settings{'TOR_RELAY_ENABLED'} = 'off'; $settings{'TOR_RELAY_MODE'} = 'exit'; $settings{'TOR_RELAY_PORT'} = 9001; +$settings{'TOR_RELAY_NICKNAME'} = ''; +$settings{'TOR_RELAY_CONTACT_INFO'} = ''; $settings{'TOR_RELAY_NOADVERTISE'} = 'off'; $settings{'TOR_RELAY_BANDWIDTH_RATE'} = 0; $settings{'TOR_RELAY_BANDWIDTH_BURST'} = 0; @@ -95,6 +97,10 @@ our $torctrl = &TorConnect(); # Toggle enable/disable field. if ($settings{'ACTION'} eq $Lang::tr{'save'}) { + if ($settings{'TOR_RELAY_NICKNAME'} !~ /^[a-zA-Z0-9]+$/) { + $errormessage = "$Lang::tr{'tor errmsg invalid relay name'}: $settings{'TOR_RELAY_NICKNAME'}"; + } + my @temp = split(/[\n,]/,$settings{'TOR_ALLOWED_SUBNETS'}); $settings{'TOR_ALLOWED_SUBNETS'} = ""; foreach (@temp) { @@ -131,14 +137,11 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) { # Update configuration files. &BuildConfiguration(); } - - # Reset ACTION. - $settings{'ACTION'} = ''; +} else { + # Load settings from file. + &General::readhash("${General::swroot}/tor/settings", \%settings); } -# Load settings from file. -&General::readhash("${General::swroot}/tor/settings", \%settings); - &showMainBox(); # Close Tor control connection. diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index a21f75ab3..b9f1a45be 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -1820,6 +1820,7 @@ 'tor do not advertise relay' => 'Relay nicht announcieren', 'tor enabled' => 'Tor einschalten', 'tor errmsg invalid ip or mask' => 'Ungültiges IP-Subnetz', +'tor errmsg invalid relay name' => 'Ungültiger Relay-Nickname.', 'tor exit country' => 'Exit-Land', 'tor exit country any' => 'Beliebig', 'tor exit nodes' => 'Exit-Nodes', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index b16ecbf84..aae29af0f 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -1856,6 +1856,7 @@ 'tor enabled' => 'Enable Tor', 'tor errmsg invalid ip or mask' => 'Invalid IP subnet', 'tor errmsg invalid node id' => 'Invalid node ID', +'tor errmsg invalid relay name' => 'Invalid relay nickname', 'tor exit country' => 'Exit country', 'tor exit country any' => 'Any country', 'tor exit nodes' => 'Exit Nodes',