23 arquivo_deTexto.write(nome + ' = ' + dicionario_volta)
24
25def leitura(Nome_Arquivo):
26 with open(Nome_Arquivo,'r') as arquivo_deTexto: 27 texto = arquivo_deTexto.readlines()
28 return texto
29
18 return dicionario_volta
19
20def escrever_arquivo(Nome_Arquivo,dicionario_volta):
21 with open(Nome_Arquivo,'w') as arquivo_deTexto: 22 nome = Nome_Arquivo.replace('.py','').lower() # bom para quando chamar dicionario em outro programa
23 arquivo_deTexto.write(nome + ' = ' + dicionario_volta)
24
Python's open()
function can take in a relative or absolute path and read its file contents.
If a user is provided direct access to the path that is opened, it can have serious security risks.
def read_file(path):
with open(os.path.join('some/path', path)) as f:
f.read()
# Someone can exploit `read_file` and see your secrets this way:
read_file('../../../secrets.txt')
Either use a static path:
def read_file(path):
with open('some/path/to/file.txt') as f:
f.read()
Or, do some kind of validation to make sure you're not allowing arbitrary file access:
def read_file(filename):
if filename not in ('x.txt', 'y.txt'):
return 'Invalid filename'
with open(os.path.join('some/path', path)) as f:
f.read()