라이브러리
[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() 함수를 사용할 수 있습니다.
댓글목록
등록된 댓글이 없습니다.