Browse Source

[mod] don't try to proxify data URL.

Previously only image/jpeg was not proxied.
This commit don't proxify all MIME types starting with "image/".

This is a quick fix for the PR #1985 : the google_image engine can returns some data URL.
Dalf 4 years ago
parent
commit
4c7b787004
1 changed files with 9 additions and 2 deletions
  1. 9 2
      searx/webapp.py

+ 9 - 2
searx/webapp.py

@@ -335,8 +335,15 @@ def image_proxify(url):
     if not request.preferences.get_value('image_proxy'):
         return url
 
-    if url.startswith('data:image/jpeg;base64,'):
-        return url
+    if url.startswith('data:image/'):
+        # 50 is an arbitrary number to get only the beginning of the image.
+        partial_base64 = url[len('data:image/'):50].split(';')
+        if len(partial_base64) == 2 \
+           and partial_base64[0] in ['gif', 'png', 'jpeg', 'pjpeg', 'webp', 'tiff', 'bmp']\
+           and partial_base64[1].startswith('base64,'):
+            return url
+        else:
+            return None
 
     if settings.get('result_proxy'):
         return proxify(url)