일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MYSQL
- 제이쿼리
- java
- 7월 공모주 청약 일정
- 6월 공모주 청약 일정
- 리눅스
- 공모주
- IPO
- 주식 청약
- Oracle
- 오라클
- css
- SQL
- 주식 청약 일정
- jquery
- JavaScript
- 자바
- 자바스크립트
- 공모주 청약 일정
- php
- 맥
- html
- Eclipse
- codeigniter
- 공모주 청약
- 주식
- Stock ipo
- linux
- 코드이그나이터
- Stock
- Today
- Total
개발자의 끄적끄적
[php] CROSS DOMAIN 대응 방법 본문
[php] CROSS DOMAIN 대응 방법
CROSS DOMAIN ISSUE 는 JS의 정책에 따라 AJAX등을 이용하여 다른 도메인에 접속을 시도하려는 경우 보안 문제로 간주하고 차단함에 의해 발생한다.
이를 해결하기 위해선 다른 도메인에서 오는 접속에 대해 허용을 해주어야 한다.
* response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
- POST, GET, OPTIONS, DELETE 에 대해 요청을 허가.
* response.setHeader("Access-Control-Max-Age", "3600");
- HTTP Request 가 발생할 때 preflight request라는 요청이 발생. preflight request는 해당 요청으로 접속이 가능한지를 미니 가늠해보기 위한 요청. option메서드를 통해 서버에 전달되므로 option 메소드를 허용해야 함.
* response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
- 비공식적으로 ajax로 접속할 경우 해당 해더를 실어서 보내기 때문에 해당 헤더에 대해 요청을 허용함.
* response.setHeader("Access-Control-Allow-Origin", "*");
- 요청을 허용하고자 하는 도메인을 기입. 특정 도메인만을 허용하고 싶다면 "*" 대신 해당 도메인을 기입해야 함.
php 에서는 헤더를 쉽게 설정할 수 있고 검색 약간이면 쉽게 해당 내용에 대해 찾을 수 있으나, 저금 더 유연한 대응을 하고 싶은 경우에는 해당 코드를 사용하면 된다.
if (isset($_SERVER['HTTP_ORIGIN'])) { // CROSS DOMAIN 대응 CORS
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
출처: https://stex.tistory.com/46 [Jays's IT Collect]
'개발 > php' 카테고리의 다른 글
[php] no cache 설정 / 뒤로가기 막기 (0) | 2020.07.24 |
---|---|
[PHP no-cache 설정(뒤로 버튼을 누르면 만료된 페이지 띄우기) (0) | 2020.07.24 |
[PHP] 강좌 #12 조건문 switch case문 (0) | 2020.06.24 |
[php/codeigniter] geoip library [펌] (0) | 2020.06.23 |
[php] 현재 url 확인 (0) | 2020.06.22 |