라이믹스 내부에서 클라이언트 ip
CMS/프레임워크 | 사용안함 |
---|---|
개발 언어 | 사용안함 |
라이믹스 클라이언트 ip 를 가져올때 클라우드플레어가 사용되는 사이트에서도 실제 단말의 ip를 가져오는데요.
\RX_CLIENT_IP 로 가져오는 경우만 해당되는건지
아니면
$_SERVER['REMOTE_ADDR']
로 직접 가져오는 경우까지 해당 되는건지 궁금하네요.
자료중에 $_SERVER['REMOTE_ADDR'] 를 사용해서 코드를 짠 경우는 클라우드플레어 ip가 잡히게 되는건가요?
- 외부페이지에서 테스트 해보니 실제 ip가 잡히네요.
댓글 7
https://github.com/rhymix/rhymix/blob/a97f6d6a05d139347f621e0e02a1e4860de2ad35/common/framework/filters/ipfilter.php#L148
클라우드플레어 접속인 경우 $_SERVER['REMOTE_ADDR']만 변경합니다.
https://github.com/rhymix/rhymix/blob/a97f6d6a05d139347f621e0e02a1e4860de2ad35/common/constants.php#L51-L78
참고로 \RX_CLIENT_IP 선언 시점이 클라우드플레어 관련 처리를 한 뒤 시점이라 별도 변경이 필요없습니다.
외부페이지 중에 라이믹스 함수 사용을 하지 않았던 곳에 라이믹스 함수 사용이 되도록 윗줄에 코드 추가는 필요한 상황이네요.
만약 모두 클라우드플레어가 아닌 실제 ip를 확인하고 싶다면요.
만약 서버 세팅시 /etc/nginx/conf.d 폴더에 클라우드플레어 IP 관련 설정파일을 넣어드렸다면 PHP나 라이믹스에서 아무 것도 하지 않아도 nginx단에서 변환됩니다. PHP에서 헤더를 주물럭거리는 것보다 더 깔끔한 방법이죠.
저희 처럼 서브도메인으로 캐시서버쪽으로 연결한 경우,
캐시서버 도메인을 제외한 나머지 메인도메인을 클라우드 플레어와 연결할 경우 캐시서버에서 접속을 못하거나 하는 상황이 일어날 수 있나요? 예를 들면 디도스 공격 활성화를 통해 확인단계를 한번 거치게 했을 경우...
디도스공격으로 클라이언트 확인을 켜 놓은 사이트의 경우는 자동첨부 애드온에서 이미지를 못가져오더라구요.