반응형

 

 

 

 

 

eval( )는 문자로 표현된 코드를 실행하게 해주는 함수이다.

 

또한, eval( ) 에는 여러 보안 이슈가 있기 떄문에 대체제로 new Function( ) 를 사용하는것을 매우 권장한다.

 

( new Function() : https://cocobi.tistory.com/77 )

 

1. eval( )

 

1.1 Text를 Object로 변환

eval()는 text를 변환하여 객체 구조로 만들 수 있다.

var obj = eval(string);
//반환값은 eval의 string을 실행하여 얻은 값, 값이 없으면 undefined를 반환

 

1.2 Json Parser

var obj = string.parseJSON();

Json 객체를 만들때는 JSON parser를 사용하여 eval()를 대체할 수 있다.

 

 

1.3 보안 이슈

  • eval()은 인자로 받은 코드를 caller의 권한으로 수행하는 함수
  • 악영향을 줄 수 있는 문자열을 eval()로 실행하면 악의적인 코드를 수행하는 결과를 초래할 수 있다.
  • 제3자가 eval()이 호출된 위치의 스코프를 볼 수 있으며, Function으로 실현할 수 없는 공격이 가능하다.

 

 

 

 

#참고사이트

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/eval

 

 

 

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기