교차 생성자 자원 공유

교차 생성자 자원 공유(CORS)는 한 서버의 스크립트가 또 다른 서버에 Ajax 요청을 보낼 때 발생합니다. 교차 생성자 자원 공유는 또한 서로 다른 프로토콜이나 포트에서 동일 서버로 요청이 전송될 때에도 발생합니다.

교차 생성자 자원 공유는 교차 사이트 요청 위조 공격을 막기 위해 있는 '동일 생성자 정책'을 위반합니다. /api/* 엔드포인트의 쿠키의 글로벌 방지가 이러한 공격을 피하지만 브라우저는 여전히 이 정책을 실행하려고 시도합니다. 모든 브라우저가 이 규칙을 사용하지만 cURL 같은 수동 요청 메커니즘에는 적용되지 않습니다.

브라우저는 사용자가 서버에 요청을 작성하려고 시도하는 중임을 감지하고 처음으로 사전 요청을 보냅니다. 사전 요청은 동일 URL에 대한 OPTION 요청으로 설정되지만 또한 생성자 헤더도 포함합니다. 서버는 허용된 요청 유형과 같은 다른 정보, 실제 요청의 응답에서 헤더를 기대하는지 여부 및 생성자가 승인되는지 여부를 다시 보내야 합니다.

사전 요청의 응답의 'Access-Control-Allow-Origin' 헤더가 요청의 생성자 헤더와 일치하지 않으면 브라우저는 이를 거부합니다. 'Access-Control-Allow-Origin' 헤더가 일치하면 브라우저는 요청을 계속합니다. 사전과 실제 요청 사이에서 룰이 변경되는 경우에는 요청의 응답이 동일한 생성자 검사를 통과해야 합니다.

허용된 생성자의 관리

브라우저에 의해 전송된 생성자 값에는 호스트 이름과 포트가 뒤따르는 프로토콜이 포함됩니다. 예:

http://192.0.2.0:8888

올바른 생성자 값이 있는지 확인하기 위해 브라우저가 전송한 요청을 가로챌 수 있습니다. /opt/qradar/webapps/console/restapi/allowed_origins.list 파일의 QRadar® Console 에서 화이트리스트에 오리진을 추가할 수 있습니다. 변경이 발견되고 즉시 적용됩니다. 이 파일에는 허용된 생성자가 줄 바꾸기로 구분된 목록이 포함됩니다. 각 항목은 사전 요청 중에 브라우저가 전송한 생성자 헤더에 대해서 테스트됩니다. 항목이 생성자와 일치(또는 항목이 '*')하면, 브라우저는 교차 생성자 자원 공유 요청을 하도록 허용됩니다.

공통 브라우저 규칙은 화이트리스트에 '*' 를 추가하여 file:// 에서 스크립트가 시작될 때 null 를 오리진으로 전송하는 것입니다. 이 방법은 모든 생성자를 허용하므로 좋은 방법은 아닙니다.