qml wizard: even stricter validation for new wallet name
related: 07dc80dd9a
This commit is contained in:
@@ -130,8 +130,13 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard):
|
|||||||
return False
|
return False
|
||||||
wallet_path = self._wallet_path_from_wallet_name(wallet_name)
|
wallet_path = self._wallet_path_from_wallet_name(wallet_name)
|
||||||
# note: we should probably restrict wallet names to be alphanumeric (plus underscore, etc)...
|
# note: we should probably restrict wallet names to be alphanumeric (plus underscore, etc)...
|
||||||
# wallet_name might contain ".." (etc) and hence sketchy path traversals are possible.
|
# try to prevent sketchy path traversals:
|
||||||
# Anyway, this at least validates that the path looks sane to the filesystem:
|
for forbidden_char in ("/", "\\", ):
|
||||||
|
if forbidden_char in wallet_name:
|
||||||
|
return False
|
||||||
|
if os.path.basename(wallet_name) != wallet_name:
|
||||||
|
return False
|
||||||
|
# validate that the path looks sane to the filesystem:
|
||||||
try:
|
try:
|
||||||
temp_storage = WalletStorage(wallet_path)
|
temp_storage = WalletStorage(wallet_path)
|
||||||
except (StorageReadWriteError, WalletFileException) as e:
|
except (StorageReadWriteError, WalletFileException) as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user