문제

통해 읽기 이 질문 다중 스레드 javascript에서 javascript가 다중 스레드를 생성하도록 허용하면 보안에 영향이 있는지 궁금합니다.예를 들어, 운영 체제나 인터프리터를 압도하고 "정의되지 않은 동작 영역"으로 진입하도록 촉발하려는 시도로 스레드를 계속해서 생성하는 악성 스크립트의 위험이 있습니까, 아니면 거의 문제가 되지 않습니까?비스레딩 구현이 면역되는 스레드를 지원하는 자바스크립트의 가상 구현을 공격이 악용할 수 있는 다른 방법이 있습니까?

업데이트: 브라우저를 잠그는 것은 정의되지 않은 동작 공격을 생성하는 것과는 다릅니다.

도움이 되었습니까?

해결책

아니요, 완벽한 구현에서는 여러 스레드가 추가 보안 문제를 추가하지 않습니다.스레드된 자바스크립트는 자바스크립트 인터프리터에 복잡성을 추가하여 악용 가능한 버그가 발생할 가능성을 높입니다.그러나 스레드만으로는 보안 문제가 추가되지 않습니다.

"Threads Suck" 때문에 스레드가 javascript에 존재하지 않습니다. - 언어 디자이너로부터 자세한 내용을 읽어보세요(http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html)

다른 팁

글쎄요, 이미 브라우저를 잠그고 진지하게 잘못 동작하는 JS로 인해 시스템 속도가 느려집니다.강화된 브라우저는 이런 종류의 사항에 대한 검사를 구현했으며 문제가 해결되기 전에 이를 중지합니다.

나는 스레드가 비슷한 방식으로 처리될 것이라고 가정하는 경향이 있습니다.


그렇다면 "정의되지 않은 동작"이 무엇을 의미하는지 설명할 수 있을까요?신뢰할 수 없는 스크립트를 허용하는 인터프리터 곧장 실행되는 OS 기본 스레드 수를 제어합니다. 엄청나게 순진함 - Gears가 어떻게 작동하는지 모르겠지만 API는 다음을 중심으로 하기 때문에 Worker에있어 WorkerPool예, 사용 중인 기본 스레드의 총 수를 매우 낮은 수로 제한하지 않는다면 매우 놀랄 것입니다.

글쎄요, 멀티 스레드 자바스크립트의 유일한 주요 예는 Google의 크롬(WOULD THEY RELEASE IT ALREADY JEEZ)이라고 생각합니다. 제가 이해한다면 자바스크립트는 탭당 하나의 프로세스만 수행하므로 탭(팝업) 생성을 시작하지 않는 한 가정하겠습니다. 이것은 null 문제가 될 수 있지만 Google은 어쨌든 모든 자바스크립트를 샌드박스에서 실행하고 있다는 사실을 숨기고 있다고 생각합니다.

다시 말하지만, 우리는 1) 언어의 멀티스레드 지원(이것이 앞으로 일어날 일로 심각하게 논의되고 있다고 생각하지 않습니다)과 2) 브라우저의 JavaScript 엔진/인터프리터의 멀티스레드 사용을 구별해야 합니다.

#2의 경우 구현에 결함이 없는 한 이것이 어떻게 엔진/인터프리터에 보안 문제를 추가할 수 있는지 알 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top