- From: Mercurial notifier <nobody@w3.org>
- Date: Mon, 22 Jun 2015 16:38:19 +0000
- To: link-checker updates <www-validator-cvs@w3.org>
changeset: 419:e3679807fdb8 tag: tip user: Ted Guild <ted@w3.org> date: Mon Jun 22 12:36:43 2015 -0400 files: bin/checklink description: block ports and protocols diff -r a0321dce6900 -r e3679807fdb8 bin/checklink --- a/bin/checklink Wed May 27 09:12:53 2015 +0400 +++ b/bin/checklink Mon Jun 22 12:36:43 2015 -0400 @@ -194,6 +194,40 @@ ); $resp->header('Client-Warning', 'Internal response'); } + +# #defaults to 80 + my $port = undef; + $port = $uri->port(); + #whitelist regex if short enough +# if (! $port =~ m/^(80|443|8000|8080)$/ ) { + if ( $port =~ '22' ) { + $resp = HTTP::Response->new(403, + 'Checking certain ports disallowed by link checker configuration' + ); + $resp->header('Client-Warning', 'Internal response'); + } + +# #defaults to 80 + my $port = undef; + $port = $uri->port(); + #whitelist regex if short enough + if ($port !~ m/^(80|443|8000|8080|8081|115|21)$/ ) { + $resp = HTTP::Response->new(403, + 'Checking certain ports disallowed by link checker configuration' + ); + $resp->header('Client-Warning', 'Internal response'); + } + + my $scheme = undef; + $scheme = $uri->scheme(); + #whitelist regex if short enough + if ($scheme !~ m/^(http|https|ftp|urn)$/ ) { + $resp = HTTP::Response->new(403, + 'Checking certain protocols disallowed by link checker configuration' + ); + $resp->header('Client-Warning', 'Internal response'); + } + return $resp; } @@ -354,7 +388,7 @@ $Cfg{Markup_Validator_URI} ||= 'http://validator.w3.org/check?uri=%s'; $Cfg{CSS_Validator_URI} ||= 'http://jigsaw.w3.org/css-validator/validator?uri=%s'; - $Cfg{Doc_URI} ||= 'http://validator.w3.org/checklink/docs/checklink.html'; + $Cfg{Doc_URI} ||= 'http://validator.w3.org/docs/checklink.html'; $Cfg{Doc_Base_URI} ||= '/checklink/docs/'; $Cfg{Doc_Images_URI} ||= '/checklink/images/'; @@ -651,7 +685,7 @@ } if (MP2() && !$ENV{HTTP_AUTHORIZATION}); $uri =~ s/^\s+//g; - if (index($uri, ":") != -1) { + if ($uri =~ /:/) { $uri = URI->new($uri); } else { @@ -816,7 +850,7 @@ for my $i (0 .. $#{$Opts{Suppress_Broken}}) { ${$Opts{Suppress_Broken}}[$i] =~ s/ /:/; my $sb_arg = ${$Opts{Suppress_Broken}}[$i]; - if ($sb_arg !~ /^(?:-1|[0-9]+):./) { + if ($sb_arg !~ /^(-1|[0-9]+):./) { &usage(1, "Bad suppress-broken argument, should be prefixed by a numeric response code: $sb_arg" ); @@ -1582,7 +1616,7 @@ for my $base (@{$Opts{Base_Locations}}) { my $rel = $candidate->rel($base); next if ($candidate eq $rel); # Relative path not possible? - next if ($rel =~ m|^(?:\.\.)?/|); # Relative path upwards? + next if ($rel =~ m|^(\.\.)?/|); # Relative path upwards? return 1; } @@ -1749,10 +1783,10 @@ $results{$uri}{location}{code} = $response->code(); $results{$uri}{location}{code} = RC_ROBOTS_TXT() if ($results{$uri}{location}{code} == 403 && - index($response->message(), "Forbidden by robots.txt") != -1); + $response->message() =~ /Forbidden by robots\.txt/); $results{$uri}{location}{code} = RC_IP_DISALLOWED() if ($results{$uri}{location}{code} == 403 && - index($response->message(), "non-public IP") != -1); + $response->message() =~ /non-public IP/); $results{$uri}{location}{code} = RC_DNS_ERROR() if ($results{$uri}{location}{code} == 500 && $response->message() =~ /Bad hostname '[^\']*'/); @@ -3024,7 +3058,7 @@ my $tagline = "Check links and anchors in Web pages or full Web sites"; printf( - <<'EOF', $Cfg{Doc_Images_URI} . 'no_w3c.png', $tagline); + <<'EOF', $Cfg{Doc_Images_URI} . 'w3c.png', $tagline); <div id="banner"><h1 id="title"><a href="http://www.w3.org/" title="W3C"><img alt="W3C" id="logo" src="%s" width="110" height="61" /></a> <a href="checklink"><span>Link Checker</span></a></h1> <p id="tagline">%s</p></div> @@ -3061,7 +3095,7 @@ $icon_type = 'error'; } return sprintf('<span class="err_type"><img src="%s" alt="%s" /></span>', - $Cfg{Doc_Images_URI} . 'info_icons/'. $icon_type . '.png', + $Cfg{Doc_Images_URI} . 'info_icons/' . $icon_type . '.png', $icon_type); } @@ -3229,9 +3263,7 @@ </fieldset> <p class=\"submit_button\"><input type=\"submit\" name=\"check\" value=\"Check\" /></p> </form> -<div id=\"w3c-include\"> - <script type=\"text/javascript\" src=\"//www.w3.org/QA/Tools/w3c-include.js\"></script> -</div> +<div id=\"w3c-include\"><script type=\"text/javascript\" src=\"//www.w3.org/QA/Tools/w3c-include.js\"></script></div> "; return; }
Received on Monday, 22 June 2015 16:38:22 UTC