*******************************************************************************
Frequently asked Questions
*******************************************************************************

This is a collection of questions - about Proxomitron, the way it works, and my
config - which are either common or likely to appear more often.
I'll update this file when new questions appear and as time permits.

Contents:

  General
  Config related
  Technical


*******************************************************************************
General
*******************************************************************************

Q1:  I have a question that isn't covered here, what to do?

A1:  Check out the help files that come with the program.  They are written in
     an easy to understand language and cover most general questions that could
     come up.

     If that didn't help, post your question in one of the Proxomitron
     discussion groups.  (Those that i frequently visit are listed in the
     "Links" section of my Prox web page.)

     People are very helpful there, but what they need to know in case of a
     problem is where it appears (e.g. http://mysite.com/index.asp?foo), which
     browser and filters you are using, and what is going wrong - as exact as
     possible, like: "Usually i see an image lower right, but with Proxomitron
     active it isn't there anymore."


Q2:  I got an advice for my problem, but it's still there.

A2:  Clear your browser's cache, restart the browser and reload the page.


Q3:  How do i uninstall Proxomitron?

A3:  No "uninstallation" is needed.  Just go to your browser's proxy settings
     and change them to what they where before you "installed" Proxomitron.
     Which would be one of "direct connection", "use proxy" unchecked, or a
     remote proxy instead of "localhost:8080".

     See the "Installation and Eradication" chapter in the help files for
     further details.


Q4:  This filter doesn't work with my browser's ad blocker plugin.

A4:  Ad-blocking plugins filter the data stream after it has been processed by
     Proxomitron.  So for instance, if an ad, Flash, etc. is supposed to show
     up on click from the Prox point of view, it may still be blocked by the
     plugin.  As i see it, there is zero need for such plugins while using
     Prox.


*******************************************************************************
Config related
*******************************************************************************

Q1:  This page doesn't display correctly with your config.

A1:  Make sure that in Proxomitron's preferences -> Access -> "Disable
     URL-based Proxomitron commands" is *not* checked, as this config depends
     on them.

     In case you added any other filters:  There should be a file
     "sidki_oob.ptron" in Proxomitron's directory, which is the out-of-box
     config.  Load it, clear the cache, restart the browser, and see if the
     problem is still there.

     If so, it can usually be solved by adding that page to the user list
     "IncludeExclude-U".  For instance, if you want to allow all scripts on
     this.site.com, the entry would look like:
     this.site.com/	$SET(keyword=$GET(keyword)a_js.)
     See "IncludeExclude.html" for a short description of all keywords.

     Above procedure is automated for the most common keywords.  Open the
     Proxomitron menu, select "Allow" -> "All JavaScript", and hit the "List"
     button.


Q2:  Google pages are shown in English instead of my language.

A2:  Open "IncludeExclude.ptxt" with an editor and go to the entry starting
     with:
     # ID -> PROXUSER, Filters -> off, Results -> 100, Country-Region -> en/us
     It sends a faked cookie to Google that anonymizes your ID, among other
     things.

     On the last line of this entry, after ":CR=2", append ":LD=MY_LOCALE".
     "MY_LOCALE" would be "fr" for French, "de" for German, "es" for Spanish,
     "xx-bork" for extra-terrestrians, etc..  Example:
     $SET(sCookieF=PREF=ID=50726f7855736572:FF=4:NR=100:CR=2:LD=de)

     Or - if you want a personal Google cookie - replace the last two lines
     with this one (keep the leading two whitespaces):
     $SET(keyword=.a_rdlink.)$SET(flag=.proxy:0.)


Q3:  I don't want any HTTPS/SSL/secure sites to be filtered.

A3:  Disable "Use Half-SSL" in the upper part of the "Header Filters" window.
     Select the "HTTP" tab in the preferences and uncheck "Use SSLeay/OpenSSL".
     Optionally remove "localhost:8080" (or similar) from the HTTPS/SSL/secure
     section in your browser's proxy settings.


Q4:  I don't like the Proxomitron menu to be semi-transparent.

A4:  Open ProxStyles.css in the "html\sidki_h_*" subdirectory and replace...

       filter: alpha( opacity=97, style=0 ) !important;
       opacity: 0.97;
       -moz-opacity: 0.97;

     ... with...

     /*
       filter: alpha( opacity=97, style=0 ) !important;
       opacity: 0.97;
       -moz-opacity: 0.97;
     */

     Save file, clear cache, and restart your browser.


Q5:  My bookmarklet doesn't work with your config.

A5:  Have a look at that bookmarklet and make sure that the name of the newly
     opened window starts with "prx_", like:
     window.open('foo.html','prx_bookmarklet','') 


*******************************************************************************
Technical
*******************************************************************************

Q1:  What exactly is the certificate used for in Proxomitron?

A1:  If you go to an https page, Proxomitron decrypts the page, filters it, and
     re-encrypts it using a certain key.  This key is contained in its
     certificate, called "proxcert.pem".  The browser in turn gets the
     re-encrypted page and asks again for proxcert.pem to be able to decrypt
     the page.
     Usually the certificate needs to match the domain of the encrypted page
     which of course is impossible to accomplish - Prox just returns
     "Proxomitron" instead of "secure-site.com".  Hence the security warning
     once per site in Mozilla and Opera.

     Now that Prox has all the SSL responsibility, it needs to know which
     "real" certificates (the ones that belong to the https pages) are good and
     which are bad.  For this purpose it uses a list of trusted certificate
     authorities - companies that issue certificates.  This list is called
     "certs.pem".


Q2:  What local ports are involved in the request/response chain?

A2:  Prox listens locally on port 8080 (by default), the browser sends its
     request from a low range random port to 8080, Prox opens a low range
     random port and sends the request to the outside world (usually remote
     port 80), the reply from the outside world is addressed to this same port,
     Prox sends the reply from port 8080 to the local port that the browser
     previously opened.


Q3:  $NEST() doesn't match this code.  Why?

A3:  $NEST() and $INEST() are skipping quotes -- By design.

     Quoting Scott:
     A few smattered single quotes usually isn't always a problem for it
     actually.  Mona's example as stated works.  It only fails if you add an
     additional single quote at the end and it all appears on one line and the
     end tag is between the two (the line break was inserted by the mailer I
     think).  In other words...

     <a ...> 'something' </a> works, and
     <a ...> 'something  </a>
     stuff' works too but...

     <a ...> 'something  </a>' fails.

     because it looks like the closing tag's within a string.  I wish I could
     think of a way to get it to work in all situations, but it's really six of
     one, half a dozen of the other.  Originally I thought to only include
     quotes after an equal, but in JavaScript you also run into quotes after
     ( , . +  and probably several others.  I also tried just checking double
     quotes (they're less common in regular text and usually paired anyway),
     but while most JavaScripts use double quotes for strings, enough didn't
     that I still ran into frequent problems.


*EOF*
