# If set, then don't send a Referer: [sic] header with each request
# (i.e. something that tells the server which page you're coming from
# that linked to it). This is a minor privacy issue, but a few sites
# won't send you pages or images if the Referer: is not what they're
# expecting. If a page is loading without images or a link seems to be
# refused, then try turning this off, and a correct Referer: header will
# be sent.
# This is only a problem in a VERY small percentage of sites, so few that
# I'm kinda hesitant to put this in the entry form. Other arrangements
# have their own problems, though.
$HIDE_REFERER= 1 ;
# If set, insert a compact version of the URL entry form at the top of each
# page. This will also display the URL currently being viewed.
# When viewing a page with frames, then a new top frame is created and the
# insertion goes there.
# If you want to customize the appearance of the form, modify the routine
# mini_start_form() near the end of the script.
# If you want to insert something other than this form, see $INSERT_HTML and
# $INSERT_FILE below.
# Users should realize that options changed via the form only take affect when
# the form is submitted by entering a new URL or pressing the "Go" button.
# Selecting an option, then following a link on the page, will not cause
# the option to take effect.
# Users should also realize that anything inserted into a page may throw
# off any precise layout. The insertion will also be subject to
# background colors and images, and any other page-wide settings.
$INSERT_ENTRY_FORM= 1 ;
# If set, then allow the user to control $REMOVE_COOKIES, $REMOVE_SCRIPTS,
# $FILTER_ADS, $HIDE_REFERER, and $INSERT_ENTRY_FORM. Note that they
# can't fine-tune any related options, such as the various @ALLOWED... and
# @BANNED... lists.
$ALLOW_USER_CONFIG= 1 ;
# If you want to encode the URLs of visited pages so that they don't show
# up within the full URL in your browser bar, then use proxy_encode() and
# proxy_decode(). These are Perl routines that transform the way the
# destination URL is included in the full URL. You can either use
# some combination of the example encodings below, or you can program your
# own routines. The encoded form of URLs should only contain characters
# that are legal in PATH_INFO. This varies by server, but using only
# printable chars and no "?" or "#" works on most servers. Don't let
# PATH_INFO contain the strings "./", "/.", "../", or "/..", or else it
# may get compressed like a pathname somewhere. Try not to make the
# resulting string too long, either.
# Of course, proxy_decode() must exactly undo whatever proxy_encode() does.
# Make proxy_encode() as fast as possible-- it's a bottleneck for the whole
# program. The speed of proxy_decode() is not as important.
# If you're not a Perl programmer, you can use the example encodings that are
# commented out, i.e. the lines beginning with "#". To use them, merely
# uncomment them, i.e. remove the "#" at the start of the line. If you
# uncomment a line in proxy_encode(), you MUST uncomment the corresponding
# line in proxy_decode() (note that "corresponding lines" in
# proxy_decode() are in reverse order of those in proxy_encode()). You
# can use one, two, or all three encodings at the same time, as long as
# the correct lines are uncommented.
# Starting in version 2.1beta9, don't call these functions directly. Rather,
# call wrap_proxy_encode() and wrap_proxy_decode() instead, which handle
# certain details that you shouldn't have to worry about in these functions.
# IMPORTANT: If you modify these routines, and if $PROXIFY_SCRIPTS is set
# below (on by default), then you MUST modify $ENCODE_DECODE_BLOCK_IN_JS
# below!! (You'll need to write corresponding routines in JavaScript to do
# the same as these routines in Perl, used when proxifying JavaScript.)
# Because of the simplified absolute URL resolution in full_url(), there may
# be ".." segments in the default encoding here, notably in the first path
# segment. Normally, that's just an HTML mistake, but please tell me if
# you see any privacy exploit with it.
# Note that a few sites have embedded applications (like applets or Shockwave)
# that expect to access URLs relative to the page's URL. This means they
# may not work if the encoded target URL can't be treated like a base URL,
# e.g. that it can't be appended with something like "../data/foo.data"
# to get that expected data file. In such cases, the default encoding below
# should let these sites work fine, as should any other encoding that can
# support URLs relative to it.
sub proxy_encode {
my($URL)= @_ ;
$URL=~ s#^([\w+.-]+)://#$1/# ; # http://xxx -> http/xxx
# $URL=~ s/(.)/ sprintf('%02x',ord($1)) /ge ; # each char -> 2-hex
# $URL=~ tr/a-zA-Z/n-za-mN-ZA-M/ ; # rot-13
return $URL ;
}
sub proxy_decode {
my($enc_URL)= @_ ;
# $enc_URL=~ tr/a-zA-Z/n-za-mN-ZA-M/ ; # rot-13
# $enc_URL=~ s/([\da-fA-F]{2})/ sprintf("%c",hex($1)) /ge ;
$enc_URL=~ s#^([\w+.-]+)/#$1://# ; # http/xxx -> http://xxx
return $enc_URL ;
=4= |