sansyrox / vim-python-virtualenv

A vim plugin which automatically manages the python virtual envs for you
MIT License
17 stars 2 forks source link

Problema de Segurança #4

Open Gabriel-Goes opened 7 months ago

Gabriel-Goes commented 7 months ago

O uso de subprocess.Popen com shell=True e a interpolação de strings para construir comandos shell apresenta riscos de segurança, especialmente se o conteúdo das variáveis envolvidas puder ser controlado por um ator externo. Isso pode levar a vulnerabilidades de injeção de shell.

Gabriel-Goes commented 7 months ago

Using only python:

user_input = input("Please enter a filename: ") try: with open(user_input, 'r') as file: print(file.read()) except FileNotFoundError: print("File not found.")

Using shlex:

import subprocess import shlex

user_input = input("Please enter a filename: ") safe_user_input = shlex.quote(user_input) subprocess.Popen(['cat', safe_user_input])

Not using f' cat {}'

import subprocess

user_input = input("Please enter a filename: ") subprocess.run(['cat', user_input])