On 11 September 2011 22:59, Platonides <platonides@gmail.com> wrote:
Also, I'm not sure if urllib.open() works with file:// urls, but I'd
verify it's a http or https url .


It even works without. For urllib2, you do need to use file:// urls.

valhallasw@dorthonion:~$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib, urllib2
>>> urllib.urlopen('/etc/passwd').readlines()
['root:x:0:0:root:/root:/bin/bash\n', (...) ,'usbmux:x:109:46:usbmux daemon,,,:/home/usbmux:/bin/false\n']
>>> urllib2.urlopen('file:///etc/passwd').readlines()
['root:x:0:0:root:/root:/bin/bash\n', (...)

Of course, it all boils back to the old motto 'never trust user input' - and be sure standard libraries are not more general than you think... 

(and this is something that might have bitten more of us, including me :-))

Best,
Merlijn