[Python] eval 함수 사용 시 주의 점
2022. 5. 6. 20:52ㆍ2018년 이전 관심사/프로그램 언어
반응형
eval 함수는 간단한 연산식을 string에 저장 후 실행 할 수 있는 함수 이다.
단 이때는 Command Injection Flaw를 그대로 노출 할 수 있는 문제가 있다.
예를 들면 아래와 같이 작성된 코드를 실행 하고
x = str(input(">> input some text for mathematical expression : ")
print eval(x)
아래와 같이 Command를 입력 하면 시스템의 디렉토리 정보를 보거나 디렉토리의 내용을 삭제 할 수 있는 위험이 있다.
>> input some text for mathematical expression: __import__('os').system('ls /')
>> input some text for mathematical expression: __import__('os').system('rm -rf /')
이런 부분을 고려하여 프로그램에서 예외 처리가 필요 할 듯 하다.
반응형
'2018년 이전 관심사 > 프로그램 언어' 카테고리의 다른 글
[Python] struct 모듈을 사용하여 패킹된 바이너리 해석 #1 (0) | 2022.06.17 |
---|---|
[Python] 운영체제 확인 방법 (0) | 2022.05.13 |
[Python] String Formatting with Lists (0) | 2022.05.05 |
[Python] List 파라미터를 이용한 string formatting 방법 (0) | 2022.04.22 |
[Python] eval(), exec() 함수 (0) | 2022.03.07 |