[Python] eval 함수 사용 시 주의 점

2022. 5. 6. 20:522018년 이전 관심사/프로그램 언어

반응형

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 /')

 

이런 부분을 고려하여 프로그램에서 예외 처리가 필요 할 듯 하다.

반응형