라이브러리

[JAVASCRIPT] eval() - 문자열을 코드로 실행 (보안상 사용 자제)




eval() 함수란?

eval() 함수는 JavaScript에서 사용할 수 있는 빌트인 함수입니다. eval() 함수는 문자열을 코드로 실행하는 함수로, 문자열에 포함된 코드를 런타임에 평가하여 실행합니다.

eval() 함수의 사용법

eval() 함수의 사용법은 다음과 같습니다.

#hostingforum.kr
javascript

eval(코드);



여기서 코드는 문자열로 표현된 코드입니다.

eval() 함수의 예제

1. 간단한 수식 평가

#hostingforum.kr
javascript

let x = 5;

let y = 3;

let result = eval('x + y');

console.log(result); // 8



2. 변수 선언 및 할당

#hostingforum.kr
javascript

let x = 5;

let y = 3;

eval('let z = x + y');

console.log(z); // 8



3. 객체 생성

#hostingforum.kr
javascript

eval('let obj = { name: "John", age: 30 };');

console.log(obj.name); // John

console.log(obj.age); // 30



4. 함수 호출

#hostingforum.kr
javascript

eval('function greet(name) { console.log(`Hello, ${name}!`); }');

greet("Alice"); // Hello, Alice!



eval() 함수의 위험성

eval() 함수는 런타임에 코드를 평가하여 실행하므로, 보안에 취약한 코드를 실행할 수 있습니다. 따라서 eval() 함수를 사용할 때는 주의를 기울여야 합니다.

* XSS 공격: eval() 함수를 사용하여 사용자 입력을 코드로 평가할 경우, XSS 공격을 받을 수 있습니다.
* 코드 실행: eval() 함수를 사용하여 코드를 실행할 경우, 코드의 보안성을 확인하지 못할 수 있습니다.

eval() 함수의 대안

eval() 함수의 대안으로는 다음과 같은 방법이 있습니다.

* Function() 생성자: Function() 생성자를 사용하여 코드를 평가할 수 있습니다.
#hostingforum.kr
javascript

let code = 'x + y';

let func = new Function('x', 'y', code);

console.log(func(5, 3)); // 8


* JSON.parse(): JSON.parse() 함수를 사용하여 JSON 문자열을 객체로 평가할 수 있습니다.
#hostingforum.kr
javascript

let json = '{"name": "John", "age": 30}';

let obj = JSON.parse(json);

console.log(obj.name); // John

console.log(obj.age); // 30



결론

eval() 함수는 JavaScript에서 코드를 런타임에 평가하여 실행할 수 있는 빌트인 함수입니다. 그러나 eval() 함수는 보안에 취약한 코드를 실행할 수 있으므로, 주의를 기울여 사용해야 합니다. 대안으로 Function() 생성자나 JSON.parse() 함수를 사용할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 12 페이지

검색

게시물 검색