10.13.2 구현 세부 사항(Implementation details)

10.13.2 구현 세부 사항(Implementation details)

JavaScript 보안 세부 사항(JavaScript security specifics)

js 클라이언트를 감싸는 html 페이지는 서버가 실행 중인 도메인과 같은 도메인에서 제공되어야 합니다. 동일 출처 정책(same-origin policy)은 한 출처에서 로드된 문서나 스크립트가 다른 출처의 리소스와 상호작용하는 방식을 제한합니다. 동일 출처 정책은 일부 교차 사이트 요청 위조 공격을 방지하는 수단으로 사용됩니다.

도메인 경계를 넘어 remoting을 사용하려면 .htaccess에서 X-Haxe-Remoting 헤더를 정의해 CORS(교차 출처 리소스 공유)를 활성화해야 합니다:

# Enable CORS
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header set Access-Control-Allow-Headers: X-Haxe-Remoting

이 주제에 대한 자세한 내용은 동일 출처 정책(same-origin policy) 참조.

또한 이는 페이지가 파일 시스템 "file:///C:/example/path/index.html"에서 직접 제공될 수 없음을 의미합니다.

Flash 보안 세부 사항(Flash security specifics)

Flash가 다른 도메인의 서버에 접근할 때 서버에 crossdomain.xml 파일을 설정해 X-Haxe 헤더를 활성화하세요.

<cross-domain-policy>
   <allow-access-from domain="*" headers="X-Haxe*"/>
</cross-domain-policy>
인자 타입은 보장되지 않음(Arguments types are not ensured)

remoting을 사용해 메서드를 호출할 때 인자 타입이 존중된다는 어떤 종류의 보장도 없습니다. 즉, 함수 foo의 인자가 Int로 타입되더라도 클라이언트는 메서드를 호출할 때 여전히 문자열을 사용할 수 있습니다. 이로 인해 어떤 경우 보안 문제가 발생할 수 있습니다. 의심스러우면 Std.isOfType 메서드나 is 키워드를 사용해 함수가 호출될 때 인자 타입을 확인하세요.

출처: Implementation details

더 알아보기