포럼

soo_replace_content.zip

다운 받으셔서 압축을 푸신 후 애드온으로 설치하시면 됩니다.

기능은 단순합니다.

기능1

/\<img[^>]+src\=[^>]+act=(disp|proc)[^>]+\>/im 구문이 <span class="misol_dummy"></span> 로 치환됩니다. 공백이 아닌 이유는 공백이 되면서 새로운 CSRF 코드가 완성될 수도 있기 때문입니다.

 

기능2

알려진 브라우저 ACCEPT 헤더를 가진 브라우저에서 해당 코드가 있는 페이지를 방문하더라도 실제 실행되지 않도록 했습니다.

 

사용권

사용권은 MIT 라이선스를 따릅니다.

<?php
/**
 * @file soo_replace_content.addon.php
 * @author MinSoo Kim <misol.kr@gmail.com>
 * @brief Replace image tag CSRF text.
 */
// Stop if non-logged-in user is
if(!defined('__XE__')) exit();

/**
 * Replace content
 * */
if(($this->act === 'procBoardInsertDocument' || $this->act === 'procBoardInsertComment' || $this->act === 'procTextyleInsertComment') && $called_position == 'before_module_init' && is_string(Context::get('content')))
{
    $board_content = '';
    $board_content = strval(Context::get('content'));
    $board_content = preg_replace("/\<img[^>]+src\=[^>]+act=(disp|proc)[^>]+\>/im", '<span class="misol_dummy"></span>', $board_content);
    Context::set('content', $board_content);
}

/**
 * if XE is requested... with img tag close.
**/
if((stripos($this->act, 'proc') !== FALSE || stripos($this->act, 'disp') !== FALSE) && $called_position == 'before_module_init')
{
    $http_img_accept_headers = array(
        'image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5', // InternetExplorer IMG
        'image/png,image/svg+xml,image/jxr,image/*;q=0.8,*/*;q=0.5', // InternetExplorer 11, MS Edge IMG
        'image/png,image/*;q=0.8,*/*;q=0.5', // FireFox IMG
        'image/webp,*/*;q=0.8', //Chrome IMG
        'image/webp,image/*,*/*;q=0.8', //Chrome IMG

        'audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6;*/*;q=0.5', // FireFox VIDEO
        'video/webm,video/ogg,video/*;q=0.9,application/ogg=0.7,audio/*;q=0.6;*/*;q=0.5' //FireFox AUDIO
    );

    if(in_array(str_replace(array(' ','    '),array('',''),$_SERVER['HTTP_ACCEPT']), $http_img_accept_headers))
    {
        Context::close();
        exit();
    }
}
?>

 

글쓴이 제목 최종 글
인간a 1.5.0 SVN ? 주소알수있을까요? ㅠ [3] 2011.06.18 by Community
엘카 포인트 그룹 문제 아직 해결 안된 모양이네요.. [6] 2011.06.18 by 아아악내눈
misol XE 마켓 판매자 이용 약관에 개인 판매자 애매한 부분. [9] 2011.06.18 by Garon
웹 엔진 제 사이트 좀 살려 주세요.. ㅠㅠ [5] 2011.06.17 by 웹 엔진
인간a 텍스타일 글쓰기 애디트 바꾸는방법 [3] 2011.06.17 by YO-DA
트루퍼 search.daum.net 이 무지막지하게 들어옵니다. [2] file 2011.06.17 by 깜장천사
앙까? "건방지게 어딜 나서? 겸손할 줄 알아야지. 넌 항상 HTML/CSS 다음이야."  
웹 엔진 IE에서는 투명 글씨 안되나요? [7] 2011.06.16 by SMaker
SMaker 끙... 괜히 1.5.0 브랜치 업데이트했나 봐요. [11] 2011.06.16 by 인간a
황시 XE에서 다국어 페이지 검색이 안되는 부분 해결방안  
Community 코어 최신버전 SVN주소좀 알 수 있을까요? [2] 2020.03.14 by Community
SMaker 웁스, XE마켓 버그 발견 [4] 2011.06.13 by SMaker
인간a 로그인유지라는 메세지 변경 어떻게하죠? [2] 2011.06.13 by 인간a
레슬리  XE 공식 사이트가 느린 줄 알았습니다. [6] 2011.06.13 by 순수의시절
snows96 프로젝트 호스팅에 관하여 [1] 2011.06.12 by 하늘종
k02092000 자신의 쓴 글에 댓글 작성시  
앙까? 구글 프로젝트로 이전된후 svn을 이용한 다운로드/업데이트는 어떻게 되나요? [1] 2011.06.12 by SMaker
웹 엔진 요새 레벨 아이콘 자료를 많이 올리네요.. [1] 2011.06.12 by H-BNB
capuchino 컨텐트 출력위젯으로 rss를 출력중인데 문제가 발생했습니다 ㅠㅠ [8] 2011.06.12 by Cody
도라란 전체 모듈 포인트 설정량을 표시해주는 위젯이 있지 않았나요? [2] 2011.06.12 by 도라란