CMS솔루션마켓, 이온디 - 워드프레스, 라이믹스, 카페24, 그누보드, 엑셀

스토어

콘텐츠 수 62

img 태그를 이용한 CSRF 치환 애드온 버전 0.1.1(업데이트 버전)

무료

0점 / 총 0명 참여
  • 구매자 0
  • 분류 애드온
  • 상품카테고리 애드온 
  • 상태 판매중 
  • 소개 이미 작성된 CSRF 공격 글에 대해 IE, FireFox, Chrome 브라우저의 HTTP ACCEPT 헤더 정보를 이용해 최대한 방어합니다. 
  • 설치경로 ./addons/soo_replace_content 
  • 버전 0.1 
  • 라이센스 MIT License 
  • 지원환경 XE1 
  • 개발자 misol 
  • 다운로드
    soo_replace_content.zip 2.29KB (잔여일 : -, 잔여횟수 : -)
파일 이름 용량 잔여일 잔여횟수 상태 다운로드
soo_replace_content.zip 2.29KB - - - 다운로드


설치 및 사용방법 

1) 다운로드 

soo_replace_content.zip


개요

<img>, <image>, <source>, <object>, <embed> 태그의 src 또는 href 속성을 이용한 CSRF 가 가능하다는 것을 알게 되었습니다.

최근 알게된 이 문제에 대해서 방어하는 애드온입니다. 조만간 XE Core 공식 업데이트가 있을 것이라 예상하지만, 그 사이에 있을 수 있는 공격을 예방합니다.

기능

  • 글 작성시 문제가 될 수 있는 <img> 요소를 무의미한 <span> 요소로 치환합니다.
  • 이미 작성된 CSRF 공격 글에 대해 IE, FireFox, Chrome 브라우저의 HTTP ACCEPT 헤더 정보를 이용해 최대한 방어합니다.

사용권

이 프로그램의 사용권은 MIT 라이선스를 따릅니다.

애드온 코드 정보

다음은 이 애드온의 핵심 코드입니다. 참고할 수 있도록 게시글에 포함합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?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|image|source|object|embed)[^>]+(src|href|data)\=[^>]+act\=(disp|proc)[^>]+\>([^<]*?\<\/(image|source|object|embed)\>)?/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;q=0.7,audio/*;q=0.6,*/*;q=0.5'//FireFox AUDIO
        '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();
    }
}
?>

 



옵션 검색
List of Articles
번호 분류 제목 평점 포인트
공지 상품 커스터마이징 건에 대해서
공지 이온디샵에서 개발자/디자이너 여러분의 컨텐츠를 판매하세요.
공지 포인트샵 오픈마켓입니다. 구매를 원할 경우 포인트를 충전해주세요.
20 위젯 나의메뉴 위젯 MD추천 무료
19 위젯 현재위치출력 위젯(xe location 위젯) MD추천 10P
18 위젯 XENARA RSS(2.0) READER 위젯 MD추천 무료
17 위젯 회원 목록 위젯 MD추천 무료
16 위젯 회원 소개 위젯 MD추천 무료
15 위젯 라이믹스 깃허브 시간 출력 MD추천 무료
14 위젯 오늘 로그인 회원 출력 위젯 MD추천 무료
13 위젯 MH Auther 위젯 MD추천 무료
12 위젯 PlannerXE123 출력 위젯 MD추천 무료
11 위젯 글쓴이 게시물 출력 위젯 MD추천 무료
10 위젯 태그 리스트 위젯 MD추천 무료
9 위젯 폼 위젯(ap_form) [1] MD추천 무료
8 위젯 알림 드롭다운 위젯 MD추천 무료
7 위젯 쪽지 드롭다운 위젯 MD추천 무료
6 위젯 메뉴 목록 및 검색 위젯 MD추천 무료
5 위젯 Slack Chat 위젯 MD추천 무료
4 위젯 레벨별 포인트/경험치(회원그룹포함) 표시 위젯 MD추천 무료
3 위젯 프로필 위젯 MD추천 무료
2 위젯 사용자 배너 위젯 V0.1 MD추천 50P
1 위젯 롤링 배너 위젯 MD추천 100P