콘텐츠 수 454

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 모듈 라이믹스 포인트선물 모듈(xe-pointsend) 500P
19 애드온 게시판 목록에서 카테고리/확장변수 바로 수정 애드온 무료
18 모듈 게시물 순서 변경 모듈 200P
17 모듈 컨텐츠판 모듈 별도문의 50,000P
16 모듈 아이콘샵(iconshop) 라이믹스(XE) + PHP8 지원 1,000P
15 스킨 라이믹스 마이로그 스킨 - 인스타그램 스타일 무료
14 모듈 마이로그(mylog) 무료
13 모듈 XE Sticker 모듈(이온디 수정) 100P
12 테마/패키지 이온디 미니홈피 1,500P
11 모듈 XE라이믹스 출석부 출쳌 도장 스킨 무료
10 애드온 이미지 필수 애드온 500P
9 애드온 sejin7940_write_limit - 일정기간 글/댓글 작성수 제한 애드온 ver. 1.5.2 무료
8 레이아웃 DoorWeb 레이아웃 B ver. 1.4 100P
7 스킨 라이믹스XE Auction 경매모듈스킨 별도문의 800P
6 모듈 라이믹스XE 포럼(forum) 모듈 2,000P
5 애드온 라이믹스 바로 업로드 애드온 무료
4 레이아웃 링크모음 여기여기 반응형 레이아웃 (요기요기) 10,000P
3 위젯 나의메뉴 위젯 MD추천 무료
2 모듈 pjaxboard 게시판 스킨 MD추천 무료
1 위젯 현재위치출력 위젯(xe location 위젯) MD추천 10P
닫기

마이페이지

로그인을 해주세요