XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | Gunmania |
---|---|
출처URL | http://www.xpressengine.com/index.php?mid=tip&document_srl=21817692 |
XE 1.7 이후에서
embed 태그 , iframe , object 태그 등이 관리자를 제외하고는 안 되는 경우 해결방법
http://www.xpressengine.com/index.php?mid=userForum&search_keyword=embed&search_target=title&document_srl=21882643
http://www.xpressengine.com/index.php?mid=tip&search_keyword=embed&search_target=title_content&document_srl=21817692
iframe 등 HackTag를 제거하는 코드를 수정하더군요. 여기서 착안해서 해당 함수를 찾아보니 해결 방법을 찾게 되었습니다.
일단 관리자 계정이 아니라면 removeHackTag 함수를 이용해 iframe 등의 태그 내의 src 등의 부분을 제거하게 되어 있고 removeHackTag 함수는 /config/func.inc.php에
위치하고 있습니다.
removeHackTag 함수는 다시 /classes/security/EmbedFilter.class.php 이 파일에서 checkIframeTag 함수를 불러와 화이트 리스트에 있는 도메인인지를 확인하여 iframe
태그를 그대로 내보낼지를 결정하고 이 화이트 리스트를 정의해 놓은 파일은 /classes/security/conf/embedWhiteUrl.xml에 위치하고 있습니다. (캐시파일은
/files/cache/embedfilter/embedWhiteUrl.php)
따라서 /classes/security/conf/embedWhiteUrl.xml 파일을 열어보면 화이트리스트 도메인을 확인할 수 있고
<domain name="http://(도메인)" desc="(설명)">
<pattern>(html, mms 등 주소)</pattern>
</domain>
형태로 embed 이면 <embed>~</embed>사이에, iframe 이면 그 아래의 <iframe>~</iframe> 사이에 값을 추가하시면 됩니다.
XE 추후 버전에서는, oEmbed API 를 사용하는 형식으로 이 부분을 대처한다고 XE 개발진이 얘길 한바..
조만간 이 부분이 더 잘 활용 될 수 있는 형태로 변경되리라 봅니다
그때까진 embedWhiteUrl.xml 파일을 수정해서 처리하면 됩니다.