본문 바로가기

블록체인/이더리움

보안취약점 external call

반응형
  • 솔리디티 스마트 컨트랙트에서 external call 을 할 때 (예를 들면 safeMint 함수) 호출한 외부 함수에서 나의 함수를 재호출하는 위험이 있다.
  • 이를 방지하기 위해 우선적으로는 require 문에서 권한 또는 정보의 유효성을 체크할 수 있다.
  • 다만 함수 내에서 실행하는 로직에 의해 require 문 만족 여부가 바뀌는 경우가 있을 수 있다.
  • 따라서 함수 내에서 변경하고자 하는 값이 있다면 external call 을 요청하기 전에 모두 실행해야 한다.
  • 결론: external call 의 위치 함수의 끝에 작성하도록 한다.
반응형