Never do THIS in Python #coding #python #learnpython
- Python의
eval() 함수는 사용자 입력을 데이터 타입으로 변환하는 데 사용될 수 있지만, 심각한 보안 취약점을 야기합니다. ⚠️
eval()은 입력받은 모든 코드를 실행하므로, 악의적인 사용자가 시스템에 코드를 주입하여 민감한 정보(예: globals())를 탈취하거나 프로그램 구조를 파악할 수 있습니다. 🕵️♀️
- 이러한 보안 위험을 방지하기 위해 Python은
ast 모듈에 내장된 literal_eval() 함수를 제공합니다. 🛡️
literal_eval()은 오직 리터럴(문자열, 숫자, 리스트, 딕셔너리 등)만 안전하게 평가하며, 코드 실행 시도를 차단하여 예외를 발생시킵니다. 🚫
- 따라서 사용자 입력을 평가해야 할 때는
eval() 대신 literal_eval()을 사용하여 보안을 강화해야 합니다. ✅
데브허브 | DEVHUB | Never do THIS in Python #coding #python #learnpython