One easy way to help prevent this is to set up a socks proxy when you use public wireless networks.
All you'll need is a publicly accessible computer running openssh and a laptop or other device with ssh installed.
The process is much the same as you would use ssh normally, with the addition of the -D switch and a port number. Open a terminal or command prompt and run this command:
ssh -D 9999 [username]@[openssh host]
When 9999 is the port number the socks proxy will run on,
[username] is your username on the openssh host and
[openssh host] is the ip address or domain name of the openssh host.
Then open your browsers proxy settings and set up a socks proxy on port 9999 and a host of 127.0.0.1
*The above image if from chromium browser which uses the system proxy settings. Other browsers will handle proxy settings differently.
Voila, encrypted traffic over public wifi.