diff options
author | Micah Lee <micah@micahflee.com> | 2019-05-29 18:21:53 -0700 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2019-05-29 18:21:53 -0700 |
commit | 50b2311409cd93814324a4570e8bdc5d032748c8 (patch) | |
tree | 82c8fcee517d8637487b01e9d847597f2e9f029c /onionshare | |
parent | c53ecb0a0390541503fbf84c55a320ff1b7faab8 (diff) | |
download | onionshare-50b2311409cd93814324a4570e8bdc5d032748c8.tar.gz onionshare-50b2311409cd93814324a4570e8bdc5d032748c8.zip |
Generate a new static_url_path each time the server is stopped and started again
Diffstat (limited to 'onionshare')
-rw-r--r-- | onionshare/web/web.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/onionshare/web/web.py b/onionshare/web/web.py index c6e902ed..1e040b54 100644 --- a/onionshare/web/web.py +++ b/onionshare/web/web.py @@ -51,16 +51,12 @@ class Web(object): self.common = common self.common.log('Web', '__init__', 'is_gui={}, mode={}'.format(is_gui, mode)) - # The static URL path has a 128-bit random number in it to avoid having name - # collisions with files that might be getting shared - self.static_url_path = '/static_{}'.format(self.common.random_string(16)) - # The flask app self.app = Flask(__name__, - static_url_path=self.static_url_path, static_folder=self.common.get_resource_path('static'), template_folder=self.common.get_resource_path('templates')) self.app.secret_key = self.common.random_string(8) + self.generate_static_url_path() self.auth = HTTPBasicAuth() self.auth.error_handler(self.error401) @@ -238,6 +234,18 @@ class Web(object): self.password = self.common.build_password() self.common.log('Web', 'generate_password', 'built random password: "{}"'.format(self.password)) + def generate_static_url_path(self): + # The static URL path has a 128-bit random number in it to avoid having name + # collisions with files that might be getting shared + self.static_url_path = '/static_{}'.format(self.common.random_string(16)) + self.common.log('Web', 'generate_static_url_path', 'new static_url_path is {}'.format(self.static_url_path)) + + # Update the flask route to handle the new static URL path + self.app.static_url_path = self.static_url_path + self.app.add_url_rule( + self.static_url_path + '/<path:filename>', + endpoint='static', view_func=self.app.send_static_file) + def verbose_mode(self): """ Turn on verbose mode, which will log flask errors to a file. |