반응형
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
반응형
'Frontend > JavaScript' 카테고리의 다른 글
[JS] 함수 표현식과 함수 선언식 (0) | 2021.09.05 |
---|---|
[JS] new Function() (0) | 2021.09.05 |
[JS] 객체를 복사하는 메서드(assign) (0) | 2021.09.01 |
[JS] 화살표 함수(Arrow Functions) (0) | 2021.08.31 |
[JS] 자바스크립트 유사 배열(Array-Like Object) (0) | 2021.08.29 |
최근댓글