Proxomitron 4.5 beta http://proxomitron.org/Prx45B.2003-04-12.zip wassup:
[no]
* Try
http://local.ptron/.pinfo/ - lots of stuff there ^_^ (views can be customized via the Info.css in the html folder)
* Added ability to import/export filter to and from the windows clipboard. Right-click over either the web or header filter lists - the import/export options are available in the context
menu.
Export will write any selected filters to the clipboard while import will insert filters from the clipboard's text. The format is the same as is used in Proxomitron's config files.
There's also an option in the merge dialog to accept input from the clipboard rather than a file. It can be used to import any config file settings - just be sure to include the filter section
headers with the text.
* Log window clipboard should be better behaved under NT/W2k/XP
* Proxomitron now has support for pre-request variables. These can be set anywhere (even in the headers) and checked later (say in the actual HTML). Each request has it's own set, and
is isolated from all other pages.
- To set a variable use...
$SET(variable=something)
- To clear a variable use...
$SET(variable=)
- To get a variable's value use...
$GET(variable)
- To test a variable's value use...
$TST(variable=match expression)
or also just...
$TST(variable)
can be used in a match to see if the variable's contents match the current text. For example..
src="http://$TST(myhost)/"
note that this must be a literal match (except for case) - the variable's value isn't treated as a matching expression with wildcards and such.
Unlike positional "\1 \2 \# ..." style variables, $SET expands a named variable's value as soon as it's called (positional are expanded in the replace). That means named variables can be set to themselves and expanded - for instance...
$SET(foo=$GET(foo) more stuff) - adds to the end of "foo"
$SET(foo=more stuff $GET(foo)) - adds to the start of "foo"
$SET(foo=$GET(foo) \1) - adds value of "\1" to the end of "foo"
$SET(foo=$GET(foo)$GET(bar)) - adds value of "bar" to the end of "foo"
$TST can also be used on good-old positional type variables \0 ... \9
which allows you to do neat things like...
<\1\s * </$TST(\1)>
which matches...
<any-tag> stuff </any-tag>
but not...
<any-tag> stuff </a-different-tag>
Note that to get this to work I had to make some big changes to the way Proxomitron normally sets these variables. In this beta please watch out for unexpected side-effects. Especially in cases where you use the same variable more than once in a match. Proxomitron used to wait till the very end to set variables which guaranteed that once matched it wouldn't change till matched again. Now it may be possible for some failed match later on to erase the previous value of a variable. Still I can't really find many cases where this would actually be a problem and the trade off is probably worth it.
Speed notes:
Like calling a list, testing a variable is a bit costly It involves a lookup of it's name each time it's called so it's better to not have it as the very first thing in a match...
SLOW: $TST(name=ayumu|osaka)<a href="chiyo">
BETTER: <a href="chiyo">$TST(name=ayumu|osaka)
Also more variables makes the lookup take longer, so if you know your done with one, it's best to clear it: $SET(foo=)
* size specifiers on runs ( like "[a]+{0,500}" ) can now range up to 65535 rather than being limited to 255.
* Error messages now call "Errors.css" in the html folder so you can customize the colors and fonts used
* Config name now shows in system tray tool tip (as per request
* Can now filter the CONNECT method used to establish SSL pass-thru connections. That allows some minimal filtering (basic site blocking and bypass list host matching) even without using OpenSSL. CONNECT headers are now also visible in the log window (though keep in mind they're only used by the proxy and not passed to the remote site).
* Bug fixed with $WESC not escaping closing parenthesis
* Added new DOM banner/container killer filter
* multi-part (push) content types not filtered by default
* Updated SSLeay/OpenSSL libraries used. Also added some basic remote site certificate validation. See readme.txt for new details
* Fixed bug that could sometimes cause characters not to be filtered in the tester window when the match was exactly 1 character long.
* $LOG() command can now open the log window if it's closed. just include a "!" as the first character before the color indicator...
$LOG(!GLog Something green)
* Fixed "read overflow" bug (for real this time
* Fixed missing "&" in "Content-Type: Fix MIME types based on URL" filter
* Altered Javascript filters to insert after the <!DOCTYPE ... > tag on webpages (works better for IE6)
* Pop-up filters are improved a bit and now use the external "WindowOpen.js" file in the html folder.
* $URL, $RESP, $IHDR, $OHDR, $TST all now work in the replacement section too (where they can be useful to capture values).
* Latest DOM banner blaster and container killer included this uses "DomConKiller.js" in the html folder
* Long command causing crash in NT/Win2k/XP fixed.
* Bug with long entries in log window fixed.
* SSL socket reuse bug fixed (hopefully)
* \h will now match hostnames that don't have a trailing slash like "http://foo.com"
* Proxy advanced options now allow a username with no password.
* Reloading a config no longer clears the debug flag.[/no]