ssl 적용 후 회원,비회원 게시판에 글 쓸때 이미지 본문삽입 문제..
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.0 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
지금 몇일째 해결이 안되어 미칠지경입니다.
보안문제로 ssl 설정 후 모든게 다 순조로웠는데...
비회원이나 회원이 게시판에 글을 쓸 때 첨부이미지 본문 삽입할 때 에디터 상에는 삽입이 되는데 등록을 하면 <img>소스가 날라가버려서 이미지 삽입이 안되고 있습니다.
이리저리 테스트 해 본 결과 첨부한 이미지를 본문 삽입하면 <img src="https://이미지경로"> 이 부분을 <img src="http://이미지경로">로 수정해서 올리니 올라가는 것을 확인했습니다.
아니면 https:// 이 부분을 아예 지운채 상대경로로 올려도 올라가는 것을 확인 했습니다.
참고로 관리자로 로그인 했을 때는 아무런 상관 없이 글이 올라가는데 비회원이나 회원이 글을 올릴 때에만 이미지가 올라가지 않으니..
권한 문제인거 같아보이지만 권한은 모든사용자 가능하도록 설정해 놓은 상태입니다.
다만 ssl 사용하지 않을 때에 정상작동 하는 것을 보면 분명 ssl 문제인거 같은데....
db에서 설정하면 된다고도 하는데...제가 db를 손댈 줄 몰라서..ㅜㅜ...
그래서 가장 쉽게 생각한게 첨부 이미지를 본문 삽입시 https:// 를 소스 상에서 없애면 될거 같은데..이 부분을 수정하려면 어떤 파일에서 수정 할 수 있나요?.. 에디터 소스를 살펴봐도 비전문가로서..너무 어렵더라구요...
제발 도움 부탁드립니다......일주일째 해결 못하고 거의 맘 상태가 피폐해져 가고 있습니다..ㅋㅋㅋㅋ;;;;;;
혹시 홈페이지에 들어오셔서 비회원으로 글 쓰기 하셔서 이미지 삽입해 보시고 소스 확인 해 보셔도 좋을 듯 합니다.............
부탁드립니다.....
댓글 19
우선 브라우저에서 ssl을 사용하면서 http를 로드하면 경고창이 발생하고 웹뷰와 같은 곳에서는 ssl사용하는 경우 비보안(http)을 로드 자체를 금지합니다.
ssl을 적용하면서 모든 load 요소를 https로 전환시켜야 하는데 지금 반대로 하려고 한다면 그건 벼룩을 잡자고 초가삼간 태우는 식입니다.
왜 https 소스가 필터링 되는지 원인을 해결하시는게 좋으실 겁니다.
왜 관리자 외 다른 사람들이 이미지를 올리면 img 소스가 지워질까요?.. 원인을 어디에서 찾아야 하는지 너무 막막하네요....ㅜㅜ
저는 개발자가 아니라 코어나 서드파티 프로그램들의 코드를 분석하거나 하지는 못합니다. 마찬가지로 사이트를 운영하는 운영자입니다만.. 저는 보통 문제가 발생할 경우 하나씩 예상되는 원인을 제거해 가는 방식으로 문제점을 확인합니다.
1.일반계정으로 글을 작성 한 후 dB에 접속해서 실제 저장된 내용을 확인해 보세요.
1.1 만약 img 소스 자체가 사라졌다면 게시글이 인서트되기 직전 필터링 되는 것입니다.
1.2 만약 db에서는 img 소스까지 모두 확인이 된다면 다른 프로그램의 영향으로 해당 부분이 글이 열람될때 숨겨지는 것 입니다.
2.사용하시는 애드온 등을 꺼 봅니다.
1.2 의 결과일 경구 문제가 되는 것이 코어인지,서드파티자료인지 확인을 테스트를 진행해서 확인하셔야 합니다.
- 멀티미디어섬네일 애드온의 경우 특정 img 만 가려주는 기능이 있습니다.(섬네일을 위해..) 오류로 인해 모든 이미지가 가려질 수 있는 부분이 있습니다.
- 멀티미디어섬네일 애드온의 경우 일반계정,관리자계정에 따라 증상이 다르게 나타날 수 있습니다.
3. 2의 테스트 결과로 코어에서 발생하는 문제라고 생각된다면 개발진에게 해당 증상을 보고해 보세요.
https://github.com/xpressengine/xe-core/issues/new
XE 자체에는 이미지 주소에 따라 필터링하는 기능이 없습니다. 사이트에 https를 사용하든 안 하든, 정상적인 <img> 태그라면 필터링되지 않습니다. 혹시 외부이미지를 업로드하는 것을 금지하거나, 본문에 삽입된 이미지를 특별하게 처리하는 애드온을 사용하고 계신 것 아닐까요? https를 적용하기 전에 사용하시던 애드온이 https 적용된 주소를 외부이미지로 잘못 인식하고 있다거나...
애드온도 다 끄고 테스트를 해봐도 소용이 없네요..
해결되기 전까지는 ssl 사용안함으로 설정하고 이용해야겠네요..답변들 해 주셔서 감사합니다...
여태 혼자서 문제가 생겨도 어떻게든 해결했었는데 이번 경우에는 도저히 답이 안나오네요...한 문제로 이렇게 오래 머리싸매고 고민한 적도 없었는데...
감사합니다..
한글 도메인에 https를 사용하면 제대로 인식하지 못하는 것일지도 모르겠습니다.
사이트 기본URL을 제주생활.com 말고 https://xn--9g4bn6khta982b.com/ 으로 해보세요.
(모든 한글 도메인은 사람 눈에 띄는 곳에 표시할 때 외에는 이렇게 인코딩하는 것이 원래 정상입니다.)
혹시나해서 이미지 삽입 후 이미지 src에 한글주소가 아니라
“https://xn--9g4bn6khta982b.com/이미지 주소”이렇게하니 되네요. 이걸 설정할 방법 있을까요?
https://ko.m.wikipedia.org/wiki/퓨니코드
감사합니다. 퓨니코드로 사용하는데도 안되네요..ㅜ,ㅜ
HTMLPurifier에서 한글 도메인이 포함된 https 주소를 제대로 인식하지 못하는 것이 아닐까 생각됩니다. HTMLPurifier를 패치하기는 쉽지 않을 수도 있으니, 본문에 삽입된 이미지 주소에는 항상 퓨니코드(xn--abcdef)를 사용하도록 하거나, 상대주소를 사용하는 쪽으로 해결하는 방법도 있겠습니다.
이렇게 답변 받았는데요..
제가 할 줄 몰라서 방법을 좀 알려주시면 안될까요?..