━━━━ ◇ ━━━━
아보카도 에디션 솔루션 관련

이웃집의 배너가 안 뜬다… Mixed Contents 해결법

개요

https에서 http 컨텐츠(이미지)를 못 불러오는 경우(대표적으로 이웃집 배너).

여기에서는 아보카도 에디션에서 배너 게시판을 대상으로 설명합니다.
 

원인

자신의 홈페이지 프로토콜이 https이고 불러들이는 컨텐츠(이미지)가 http 프로토콜을 가지고 있을 때, Mixed Contents 차단으로 인하여 뜨지 않는 것이 원인입니다.

http 설정하여도 최근 브라우저 자체에서 https로 자동 리다이렉팅 하는 경우가 많아, http로 접속하여도 문제가 많습니다.

호스팅 대부분에서 SSL 인증서 설치를 대부분 해주긴 하나 구 개인홈페이지들의 경우 SSL 인증서 설치가 되어있지 않아서 그렇습니다. 
 

해결법에 대한 간단한 설명

- php에서 curl을 사용하여, 외부의 이미지를 불러들여 자신의 호스팅에 저장하고 불러들입니다.
- 자신의 서버에 저장하는 형태가 됩니다. 게시판을 삭제해도 찌꺼기처럼 남을 수 있습니다. 수동적으로 삭제하기를 권합니다. 용량이 부족하면 곤란합니다.
- 외부에서 이미지를 불러들여 → 저장하는 형태이기 때문에 로딩 시 렉이 걸립니다. 속도 개선을 했으나… curl은 전문이 아니라서 아직 미숙합니다. 이 지점 유의해서 사용해주세요.
 
Q. 그럼 장점이 뭐냐
A. 지인에게 SSL 설치하라고 안 해도 된다는 점과 지인이 배너 바꿀때마다 저장 안 해도 된다 정도…
 

해결 전 확인할 것

- curl이 지원되는 php여야 합니다. 확인하는 방법은 다음과 같습니다.
1) 다음 파일을 다운받아 FTP로 서버에 올려주세요. 압축 내용물을 아무 다른 폴더에도 넣지 말고 public_html(혹은 www) 안에 바로 넣습니다.

test_curl.zip
0.00MB

 
2) 그리고 홈페이지 도메인/test_curl.php를 틉니다.
3) Ctrl + F로 curl을 서치
4) curl support가 enable이면 사용 가능, 그렇지 않다면 불가능합니다.
 

이 경우 사용이 가능하다는 뜻.

 
 


 

해결법

- 대하님의 배너 스킨을 사용할 경우 아래 파일을 받아서 사용해주시면 깔끔히 해결됩니다.

link.zip
0.01MB

 
- 만약 위 스킨이 아니거나, 위 스킨이더라도 수정했을 경우 아래 파일을 다운받습니다.

curl.lib.zip
0.00MB

 


- 압축 내용에 있는 파일을 폴더 없이 해당 게시판 스킨에다가 설치합니다. skin/board/해당 게시판 스킨 폴더명 안에 들어가 curl.lib.php를 업로드.

이렇게 curl.lib.php가 들어가면 성공.

- 적용하고 싶은 파일의 상단에 다음 줄을 추가(<? ?> 사이에 넣을 것.).
- 보통의 경우 list.skin.php 에 사용하는 게 좋습니다.

include_once($board_skin_path.'/curl.lib.php');

 

적용 예제

 
해당되는 외부 이미지의 소스를 찾습니다. 주로 <img src="변수 요소"> 와 같은 형태로 되어있습니다.

적용 예제

 
예를 들어 위와 같이 <?=$lists[$i]['wr_link1']?> 일 경우 다음처럼 수정합니다.

<img src="<?=get_image_curl($lists[$i]['wr_link1'],$lists[$i]['wr_id'])?>">
// 여기부터의 주석은 삭제하세요.
// get_image_curl(외부 링크 변수,넘버링할 변수)가 됩니다.
// 넘버링할 변수는 $list[$i]['wr_id'](list.skin.php를 고칠 경우)
// 혹은 $view['wr_id'](view.skin.php를 고칠 경우) 와 같은 형태를 추천합니다.

 

적용 예제

 
 
그리고 저장 후 게시판을 틀어서 무사히 뜬다면 성공입니다.

무사 적용 예제(엑스박스는 아예 터진 홈페이지입니다)

 
 

기타 사항

- CURL은 저도 이번에 처음 쓰는 거라 문의응답을 하기가 너무 어렵습니다. 사용 후 문제가 생긴다면 돌려두시는 걸 추천드립니다(백업 추천).

- https를 지원하는 http 사이트여도 배너를 저장하기 때문에, 빠른 로딩을 위해서는 해당 사이트의 배너를 https로 바꾸는 걸 추천드립니다(필수는 아니고 귀찮으시면 넘기셔도 됩니다.).

- 일부 호스팅에서 해당 배너를 데이터로 약간 남겨뒀을 경우에도 저장이 되긴 합니다. 

- woobi.co.kr과의 연결에서 매우 로딩이 걸리는 취약점을 발견했습니다. 해당 배너는 따로 저장하시는 걸 추천드립니다.

- 배포하는 curl.lib.php 파일은 직접 입력한 코드입니다만, 수정 배포를 허용하며 해당 파일을 적용하는 것을 커미션으로 받는것 또한 허용합니다. 수정 배포 시에는 출처를 남겨주시면 감사하겠습니다.

COMMENT