[HTML Purifier] 게시글 본문 작성후 magnet 링크가 사라지는 현상

[HTML Purifier] 게시글 본문 작성후 magnet 링크가 사라지는 현상

QA

[HTML Purifier] 게시글 본문 작성후 magnet 링크가 사라지는 현상

본문

magnet 링크가 사라지는 현상을 다시 정리했습니다.

아직 문제 해결이 안된 상태이므로 여러분의 주옥같은 의견 부탁드립니다.



<a href="magnet:?xt=urn:btih:test1234">magnet:?xt=urn:btih:test1234</a>  를 본문에 입력후 저장하면

<a rel="noreferrer">magnet:?xt=urn:btih:test1234</a>  이렇게 결과가 표시됩니다.


SafeIframe 으로는 처리가 안됩니다.  

주소가 http 가 아닌 magnet 으로 시작하기때문에 추가적인 purifier 예외규칙이 필요합니다.



마그넷은 아래와 같은 규칙으로 링크를 생성합니다. 

magnet:?xt=urn:tree:tiger:hash_links

magnet:?xt=urn:sha1:hash_links

magnet:?xt=urn:bitprint:hash_links

magnet:?xt=urn:ed2k:hash_links

magnet:?xt=urn:aich:hash_links

magnet:?xt=urn:kzhash:hash_links

magnet:?xt=urn:btih:hash_links

magnet:?xt=urn:md5:hash_links



1. 그누보드5 / plugin / htmlpurifier / magnet.php 추가


<?php

/**

Validates magnet (BitTorrent hash links)

require xt= GET parameter

출처 : https://github.com/foocorp/gnu-social/commit/90045d66ea8dd098cb57b5844f05050a528bf037 

*/


class HTMLPurifier_URIScheme_magnet extends HTMLPurifier_URIScheme

{

    /**

     * @type bool

     */

    public $browsable = false;


    /**

     * @type bool

     */

    public $may_omit_host = true;


    /**

     * HTMLPurifier_URI $uri

     * HTMLPurifier_Config $config

     * HTMLPurifier_Context $context

     * @return bool

     */

    public function doValidate(&$uri, $config, $context)

    {

        $uri->userinfo = null;

        $uri->host     = null;

        $uri->port     = null;

        return true;

    }

}




2. 그누보드5 / lib / common.lib.php 에  mgnet.php 를 include


    include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php');

    

를 아래와 같이 변경


    include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php');

    include_once(G5_PLUGIN_PATH.'/htmlpurifier/magnet.php');




3. 그누보드5 / lib / common.lib.php 에 magnet 예외 규칙 추가 


    $config->set('Attr.AllowedFrameTargets', array('_blank'));

    

아래에 내용 추가

    

    $config->set(여기에_무언가를_꾸며야하는데_방법을_찾는중입니다);




관련자료

https://github.com/foocorp/gnu-social/commit/90045d66ea8dd098cb57b5844f05050a528bf037 

http://htmlpurifier.org/docs/enduser-uri-filter.html

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 16
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT