AIR 응용 프로그램과 함께 설치한 파일은 AIR API에 액세스할 수 있습니다. 보안상의 이유로 다른 소스의 내용은 이에 해당하지 않습니다. 예를 들어 이러한 제한 사항으로 인해 원격 도메인(예: http://example.com)의 내용이 사용자의 데스크톱 디렉토리를 읽을 수 없거나 더 많은 제약을 받게 됩니다.
eval()
함수 및 관련 API 호출을 통해 노출될 수 있는 보안 취약성이 존재하기 때문에 응용 프로그램과 함께 설치되는 내용은 기본적으로 이러한 메서드를 사용할 수 없습니다. 그러나 일부 Ajax 프레임워크는
eval()
함수 및 관련 API를 호출하는 기능을 사용합니다.
내용이 AIR 응용 프로그램에서 작동하도록 올바르게 구조화하려면 서로 다른 소스의 내용에 대한 보안 제한 사항의 규칙을 고려해야 합니다. 서로 다른 소스의 내용은 샌드박스(
보안 샌드박스
참조)라고 하는 개별 보안 분류에 배치됩니다. 기본적으로 응용 프로그램과 함께 설치되는 내용은
응용 프로그램
샌드박스라고 하는 샌드박스에 설치되며 AIR API에 대한 액세스 권한이 부여됩니다. 응용 프로그램 샌드박스는 일반적으로 가장 안전한 샌드박스로, 신뢰할 수 없는 코드 실행을 금지하도록 제한합니다.
런타임을 통해 응용 프로그램과 함께 설치된 내용을 응용 프로그램 샌드박스가 아닌 다른 샌드박스에 로드할 수 있습니다. 비 응용 프로그램 샌드박스의 내용은 일반적인 웹 브라우저의 경우와 유사한 보안 환경에서 작동합니다. 예를 들어 비 응용 프로그램 샌드박스의 코드는
eval()
및 관련 메서드를 사용할 수 있지만 동시에 AIR API에 액세스할 수는 없습니다. 런타임에는 AIR API를 비 응용 프로그램 내용에 표시하지 않고 서로 다른 샌드박스의 내용이 안전하게 통신할 수 있도록 하는 몇 가지 방법이 있습니다. 자세한 내용은
서로 다른 보안 샌드박스의 내용 크로스 스크립팅
을 참조하십시오.
보안상의 이유로 샌드박스에서의 사용이 제한되는 코드를 호출하면 런타임에서 JavaScript 오류: "응용 프로그램 보안 샌드박스에서의 JavaScript 코드에 대한 Adobe AIR 런타임 보안 위반"을 전달합니다.
이 오류를 방지하려면 다음 단원
보안 관련 JavaScript 오류 방지
에서 설명하는 코딩 방법을 따르십시오.
자세한 내용은
Adobe AIR의 HTML 보안
을 참조하십시오.