content_count 62

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

free

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 (잔여일 : -, 잔여횟수 : -)
File Name file_capacity residual_day residual_amount condition download
soo_replace_content.zip 2.29KB - - - download


설치 및 사용방법 

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

마이페이지

로그인을 해주세요