Test Target management.

 Proxy Switcher Pro version 5.11.0 or newer is needed/recommended for these features.

Intro

To test if the proxy server is working it needs to be tested against known-good web server. This web server is being called a Test Target. Proxy Switcher contains a list of these test targets which user can enable or disable individually. It is also possible to add your own test server(s).

Target Use Priorities

In most cases to test a server it needs to be checked against http:// and https:// target + optionally a CORE target. Test Target Configuration lists HTTP and HTTPS test servers. When proxy tester is acquiring test target certain priority rules are followed. Targets are examined in following priority:
  1. User Added (enabled and tested as good)
  2. Built-in targets (enabled and tested as good)
Which basically means that user-added targets will always be prioritized.

CORE Targets

Standard and PRO versions use CORE Targets are used to determine if server supports HTTP POST method and what level of anonymity it provides. Servers are picked based on measured speed (it will be usually the closest server).

Default Test Targets

To bring up test target configuration window go to main menu View->Configure Test Targets...

Enabling or disabling targets - this can be done by either clicking on the check box [1] or by double clicking on the desired row of the state column [2]. If the test target for some reason is not accessible directly, but you know that it should be valid, you can force tester to treat the target as properly working one [3]. To re-test all the test targets click [4].

User Defined Targets

To add your own server click on a + button on the toolbar. A new entry will be added in the tree under the "User Targets" parent node. After you have entered new URL as the name you should click on the "play" button on the toolbar. This will start re-testing of the targets, including the one you just added. In this example http://www.yahoo.com/ is used.

Configuring the target

When testing is complete you should click on the "Details..." button [2]. This will bring up the new window which will show how the test target responded to the test.

First of all notice that yahoo responded with the HTTP response 301 instead of usual 200, and is telling the browser to follow to the new URL - https://www.yahoo.com/ . Since in this case we don't actually need to follow redirects and such target's response is fine for proxy testing we need to set [3] as checked.

Validation of the fetched data is needed to determine if the proxy server has returned proper pages or not. This is achieved by search of specific strings in the response. Picking stable and unique values that will not get overwritten by the proxy servers might be tricky. The tester will look for the presence of the string [4] in the header of the HTTP response and of the string [5] in the body (contents). It can also invalidate tested proxy server if the string [6] is present in the body. This can be useful, for example, in case web site tells you "access denied" or "you are banned" or similar.

In this case I have picked Server=ATS for the headers. Since it's unlikely that yahoo changes it's server software very often. To validate body reliably here is not a lot of good strings to pick from, so I took Yahoo as a validating string.

To test that everything is working properly click button [1] to perform re-test of the server. If everything is fine then server's entry will light up as green on the target tree. If it's not then click on [2] (Details...) again and see what caused the problem - network issues, the response or the contents of the response.

URL variables

Added dynamic building of the test target URLs. The supported format is {VariableName}

Currently supported variable(s):
Variable Value Min. Version
{ProxyIP} Current proxy IP address (determined by DNS lookup, if hostname is used). 5.17.0

An example

As test example a following proxy test target was made:
http://www.stopforumspam.com/ipcheck/{ProxyIP}
When server is being tested the {ProxyIP} will be replaced with the IP address of the current proxy server. Which will effectively mean calling API of the stopforumspam.com site and test if the current proxy server is present in it's database. After which a validation rule can be set which will match a string in the contents returned. So you can either find servers that are listed as sources of spam or servers that are unlisted.



Also to make sure you actually test servers using this target, you need to disable rest of http:// targets. Targets that are used in testing are logged on scan start. If you want to double-check which targets are used you can test a single server to see this information.