Removed Windows specific code
This commit is contained in:
		
							parent
							
								
									ce63c4cd3b
								
							
						
					
					
						commit
						272d7d7f74
					
				
					 11 changed files with 37 additions and 70 deletions
				
			
		|  | @ -26,19 +26,9 @@ from onionrexceptions import ArbitraryCodeExec | |||
| 
 | ||||
| def block_system(cmd): | ||||
|     """Prevent os.system except for whitelisted commands+contexts.""" | ||||
|     allowed = 'taskkill /PID ' | ||||
|     is_ok = False | ||||
|     if platform.system() == 'Windows': | ||||
|         if cmd.startswith(allowed): | ||||
|             for c in cmd.split(allowed)[1]: | ||||
|                 if not c.isalnum() or c not in ('/', 'F', ' '): | ||||
|                     break | ||||
|             else: | ||||
|                 is_ok = True | ||||
|     if not is_ok: | ||||
|         logger.warn('POSSIBLE EXPLOIT DETECTED, SEE LOGS', terminal=True) | ||||
|         logger.warn(f'POSSIBLE EXPLOIT: shell command not in whitelist: {cmd}') | ||||
|         raise ArbitraryCodeExec('os.system command not in whitelist') | ||||
|     logger.warn('POSSIBLE EXPLOIT DETECTED, SEE LOGS', terminal=True) | ||||
|     logger.warn(f'POSSIBLE EXPLOIT: shell command not in whitelist: {cmd}') | ||||
|     raise ArbitraryCodeExec('os.system command not in whitelist') | ||||
| 
 | ||||
| 
 | ||||
| def block_exec(event, info): | ||||
|  |  | |||
|  | @ -67,13 +67,10 @@ MOTD_SIGN_KEY = "TRH763JURNY47QPBTTQ4LLPYCYQK6Q5YA33R6GANKZK5C5DKCIGQ" | |||
| """Public key that signs update notifications.""" | ||||
| UPDATE_SIGN_KEY = "TRH763JURNY47QPBTTQ4LLPYCYQK6Q5YA33R6GANKZK5C5DKCIGQ" | ||||
| 
 | ||||
| pf = platform.system() | ||||
| if pf == 'Windows': | ||||
|     SCRIPT_NAME = 'run-windows.bat' | ||||
| 
 | ||||
| if os.path.exists(filepaths.daemon_mark_file): | ||||
|     SCRIPT_NAME = 'start-daemon.sh' | ||||
| else: | ||||
|     if os.path.exists(filepaths.daemon_mark_file): | ||||
|         SCRIPT_NAME = 'start-daemon.sh' | ||||
|     else: | ||||
|         SCRIPT_NAME = 'onionr.sh' | ||||
|     SCRIPT_NAME = 'onionr.sh' | ||||
| if 'qubes' in platform.release().lower(): | ||||
|     IS_QUBES = True | ||||
|  |  | |||
|  | @ -1,9 +1,11 @@ | |||
| ''' | ||||
|     Onionr - Private P2P Communication | ||||
| """Onionr - Private P2P Communication | ||||
| 
 | ||||
|     Register static file routes | ||||
| ''' | ||||
| ''' | ||||
| Register static file routes | ||||
| """ | ||||
| import os | ||||
| import mimetypes | ||||
| from flask import Blueprint, send_from_directory | ||||
| """ | ||||
|     This program is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation, either version 3 of the License, or | ||||
|  | @ -16,10 +18,8 @@ | |||
| 
 | ||||
|     You should have received a copy of the GNU General Public License | ||||
|     along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
| ''' | ||||
| import os | ||||
| import mimetypes | ||||
| from flask import Blueprint, send_from_directory | ||||
| """ | ||||
| 
 | ||||
| 
 | ||||
| # Was having some mime type issues on windows, this appeared to fix it. | ||||
| # we have no-sniff set, so if the mime types are invalid sripts can't load. | ||||
|  | @ -28,65 +28,82 @@ mimetypes.add_type('text/css', '.css') | |||
| 
 | ||||
| static_files_bp = Blueprint('staticfiles', __name__) | ||||
| 
 | ||||
| root = os.path.dirname(os.path.realpath(__file__)) + '/../../../static-data/www/' # should be set to onionr install directory from onionr startup | ||||
| # should be set to onionr install directory from onionr startup | ||||
| root = os.path.dirname(os.path.realpath(__file__)) + \ | ||||
|     '/../../../static-data/www/' | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/onboarding/', endpoint='onboardingIndex') | ||||
| def onboard(): | ||||
|     return send_from_directory(f'{root}onboarding/', "index.html") | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/onboarding/<path:path>', endpoint='onboarding') | ||||
| def onboard_files(path): | ||||
|     return send_from_directory(f'{root}onboarding/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/chat/', endpoint='chatIndex') | ||||
| def chat_index(): | ||||
|     return send_from_directory(root + 'chat/', "index.html") | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/chat/<path:path>', endpoint='chat') | ||||
| def load_chat(path): | ||||
|     return send_from_directory(root + 'chat/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/board/', endpoint='board') | ||||
| def loadBoard(): | ||||
|     return send_from_directory(root + 'board/', "index.html") | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/mail/<path:path>', endpoint='mail') | ||||
| def loadMail(path): | ||||
|     return send_from_directory(root + 'mail/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/mail/', endpoint='mailindex') | ||||
| def loadMailIndex(): | ||||
|     return send_from_directory(root + 'mail/', 'index.html') | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/friends/<path:path>', endpoint='friends') | ||||
| def loadContacts(path): | ||||
|     return send_from_directory(root + 'friends/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/friends/', endpoint='friendsindex') | ||||
| def loadContacts(): | ||||
|     return send_from_directory(root + 'friends/', 'index.html') | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/profiles/<path:path>', endpoint='profiles') | ||||
| def loadContacts(path): | ||||
|     return send_from_directory(root + 'profiles/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/profiles/', endpoint='profilesindex') | ||||
| def loadContacts(): | ||||
|     return send_from_directory(root + 'profiles/', 'index.html') | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/board/<path:path>', endpoint='boardContent') | ||||
| def boardContent(path): | ||||
|     return send_from_directory(root + 'board/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/shared/<path:path>', endpoint='sharedContent') | ||||
| def sharedContent(path): | ||||
|     return send_from_directory(root + 'shared/', path) | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/', endpoint='onionrhome') | ||||
| def hello(): | ||||
|     # ui home | ||||
|     return send_from_directory(root + 'private/', 'index.html') | ||||
| 
 | ||||
| 
 | ||||
| @static_files_bp.route('/private/<path:path>', endpoint='homedata') | ||||
| def homedata(path): | ||||
|     return send_from_directory(root + 'private/', path) | ||||
|  | @ -5,7 +5,6 @@ Command to restart Onionr | |||
| import time | ||||
| import os | ||||
| import subprocess  # nosec | ||||
| import platform | ||||
| 
 | ||||
| from etc import onionrvalues | ||||
| from etc import cleanup | ||||
|  | @ -36,10 +35,6 @@ SCRIPT_NAME = os.path.dirname(os.path.realpath( | |||
| 
 | ||||
| def restart(): | ||||
|     """Tell the Onionr daemon to restart.""" | ||||
|     if platform.system() == 'Windows': | ||||
|         logger.warn('Cannot restart Onionr on Windows. Run stop and manually restart.', terminal=True) | ||||
|         return | ||||
| 
 | ||||
|     logger.info('Restarting Onionr', terminal=True) | ||||
| 
 | ||||
|     # On platforms where we can, fork out to prevent locking | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ from typing import TYPE_CHECKING | |||
| 
 | ||||
| from gevent import sleep | ||||
| 
 | ||||
| from psutil import Process, WINDOWS | ||||
| from psutil import Process | ||||
| import ujson as json | ||||
| 
 | ||||
| from coredb import blockmetadb | ||||
|  | @ -49,8 +49,6 @@ class SerializedData: | |||
|         proc = Process() | ||||
| 
 | ||||
|         def get_open_files(): | ||||
|             if WINDOWS: | ||||
|                 return proc.num_handles() | ||||
|             return proc.num_fds() | ||||
| 
 | ||||
|         try: | ||||
|  |  | |||
|  | @ -33,8 +33,6 @@ def identify_home() -> str: | |||
|         system = platform.system() | ||||
|         if system == 'Linux': | ||||
|             path = os.path.expanduser('~') + '/.local/share/onionr/' | ||||
|         elif system == 'Windows': | ||||
|             path = os.path.expanduser('~') + '\\AppData\\Local\\onionr\\' | ||||
|         elif system == 'Darwin': | ||||
|             path = os.path.expanduser('~' + | ||||
|                                       '/Library/Application Support/onionr/') | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue