최대 1 분 소요

개요

  • evaluate(평가하다)의 약자
  • 전달되는 문자열을 분석해서 적절한 처리 수행
  • 함수 이름을 입력받으면 해당 함수를 호출
    • 표준 입력 사용 시 의도하지 않은 함수 호출이 가능한 보안 취약점 발생
  • 단순히 문자열을 숫자로 변환하려면 int/float 함수를 이용


예제

  • 코드
    def func():
        return 1


    if __name__ == "__main__":
        print(eval("1") + eval("2"))
        print(eval("2.5") * 2)
        print(eval("1 + 2 - 5"))

        print(eval("func()"))

        print("------")

        print(int(1.1))
        print(int("1"))

        print("------")

        print(float(1))
        print(float("1.1"))
  • 실행 결과
    3
    5.0
    -2
    1
    ------
    1
    1
    ------
    1.0
    1.1