瀏覽代碼

[fix] codec can't encode character inside image_proxify

Thomas Pointhuber 10 年之前
父節點
當前提交
14079ea2b0
共有 1 個文件被更改,包括 5 次插入3 次删除
  1. 5
    3
      searx/webapp.py

+ 5
- 3
searx/webapp.py 查看文件

215
     if url.startswith('//'):
215
     if url.startswith('//'):
216
         url = 'https:' + url
216
         url = 'https:' + url
217
 
217
 
218
+    url = url.encode('utf-8')
219
+
218
     if not settings['server'].get('image_proxy') and not request.cookies.get('image_proxy'):
220
     if not settings['server'].get('image_proxy') and not request.cookies.get('image_proxy'):
219
         return url
221
         return url
220
 
222
 
221
-    h = hashlib.sha256(url.encode('utf-8') + settings['server']['secret_key'].encode('utf-8')).hexdigest()
223
+    h = hashlib.sha256(url + settings['server']['secret_key'].encode('utf-8')).hexdigest()
222
 
224
 
223
     return '{0}?{1}'.format(url_for('image_proxy'),
225
     return '{0}?{1}'.format(url_for('image_proxy'),
224
                             urlencode(dict(url=url, h=h)))
226
                             urlencode(dict(url=url, h=h)))
553
 
555
 
554
 @app.route('/image_proxy', methods=['GET'])
556
 @app.route('/image_proxy', methods=['GET'])
555
 def image_proxy():
557
 def image_proxy():
556
-    url = request.args.get('url')
558
+    url = request.args.get('url').encode('utf-8')
557
 
559
 
558
     if not url:
560
     if not url:
559
         return '', 400
561
         return '', 400
560
 
562
 
561
-    h = hashlib.sha256(url.encode('utf-8') + settings['server']['secret_key'].encode('utf-8')).hexdigest()
563
+    h = hashlib.sha256(url + settings['server']['secret_key'].encode('utf-8')).hexdigest()
562
 
564
 
563
     if h != request.args.get('h'):
565
     if h != request.args.get('h'):
564
         return '', 400
566
         return '', 400