summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2013-02-07 18:34:39 +0100
committerOlivier Dony <odo@openerp.com>2013-02-07 18:34:39 +0100
commitd0c4cca10e5632345fb7e9ebd670a1b5ec01c0cd (patch)
tree3e08ed9bd8e258df1a72464118012a4b829de70f /addons/web/controllers/main.py
parentb64db1c00767e0ac02e19f812f130f50cb2ba60f (diff)
[FIX] web: properly encode db and addons URL parameters
Passing the values unescaped could be a source of errors and a XSS vector. lp bug: https://launchpad.net/bugs/1118365 fixed bzr revid: odo@openerp.com-20130207173439-ud5fos61d4pcoe2d
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 8455fbafcd6..9fe38a9d23a 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -13,6 +13,7 @@ import os
import re
import simplejson
import time
+import urllib
import urllib2
import xmlrpclib
import zlib
@@ -294,9 +295,9 @@ def manifest_list(req, extension, mods=None, db=None):
if not req.debug:
path = '/web/webclient/' + extension
if mods is not None:
- path += '?mods=' + mods
+ path += '?' + urllib.urlencode({'mods': mods})
elif db:
- path += '?db=' + db
+ path += '?' + urllib.urlencode({'db': db})
return [path]
files = manifest_glob(req, extension, addons=mods, db=db)
i_am_diabetic = req.httprequest.environ["QUERY_STRING"].count("no_sugar") >= 1 or \