POST comes from the http RFC, allowing to POST datas to websites (roughly).
By using POSTs requests on a misconfigured Squid Proxy, its pretty easy to establish a connection between Squid and any server/port.
This problem is due to a misconfiguration in squid.conf's access list. To solve this, you just have to well configure your Squid by adding a few lines on the Squid's access control part.
A fast way of doing it is defining the range of ports you allow with an acl element.
Squid knows as acl elements: "port" which is the destination port number.
Set the accessible ports, and then deny the others.
acl safe 80 21 443 8000-65535 # Safe ports
http_access deny !safe # Deny !Safe Ports
Then, you are sure noone will be able to access by the POST exploit any forbidden ports (or only if thoses are > 8000).
Of course, verify that you allow caching for only your customers, etc by theses lines :
acl all src 0.0.0.0/0.0.0.0
acl ourhosts src 192.168.0.0/255.255.0.0 # Here are your customers.
(yeah, acl allow ips, ports, time, and many other stuff...)
For more informations about access control lists... Please check the Squid projet site:
because they of course describe all the acl element you can have, and all the kind of denies you can do with it.
And finally, you may use Squid 2.x , because a few bugs that could be holes are corrected...
For instance , all sprintf replaced by snprintf. Again, check :
http://www.squid-cache.org/ because they'll describe better than me thoses new features.