0
이 임의의 js 코드를 실행하기위한 유일한 요구 사항은 특정 전역 변수/함수 (예 : setInterval
)가 노출되지 않는다는 것입니다.사용자 지정 전역 컨텍스트에서 임의의 javascript 실행
현재 전략에는 js 코드를 파싱하고 모든 글로벌 참조에 대해 var
선언 (둘러싸는 클로저의 시작 부분에 있음)이 포함됩니다.
다른 해결 방법이 있는지 궁금합니다.
또한이 임의 코드는 eval
과 같이 실행되지 않습니다. 오히려 클로저 내부를 감싸고 기본 코드에 추가됩니다.
JS가 할 수없는 작은 유한 목록을 가지고 있다면 아이디어 중 하나는 window.alert = myalert와 같은 값으로 함수와 변수를 재정의하는 것입니다. 이것은 분명히 그것들을 세계적으로 사용할 수 없게 만든다. 단지 당신의 목적에 맞는 경우를 대비해서. – closure
클로저에 코드를 래핑 할 수 있습니다 (클로저는 함수 일뿐입니다). 그런 다음 모든 전역 선언은 클로저에 대해 로컬이됩니다. –
@raghavv 그래, 그게 더 나은 접근 방법이고, 내가해야 할 일이야. 나는이 명백하지만 중요한 점을 놓쳤다는 것을 믿을 수 없다. 대답을 남겨 주시면 받아 들일 것입니다. 감사! – Dave