11.Nas_1


새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


보안 XSS 취약점 원천봉쇄 / 특정 폴더에서 PHP 실행 금지하기

♨ 카랜더 일정 :
  • 링크

  • 첨부

  • 컨텐츠 정보

    본문

    http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=77681[보안] 특정 폴더에서 PHP 실행 금지하기글쓴이기술레벨커뮤니티레벨guild_145_emoticon.gif곰탱이푸날 짜13-10-16 22:12조 회3310간편URLhttp://www.phpschool.com/link/tipntech/77681 복사

    SyntaxHighlight로 보기

    파일 업로드 기능을 제공할 경우 웹쉘 공격을 당할 가능성이 언제나 열려 있습니다. 
    막는다고 이것저것 해봐도 누군가가 교묘하게 조작한 파일을 업로드하면 뚫려버리기 일쑤죠. 

    만약 업로드한 파일들을 따로 모아두는 폴더가 있다면 
    해당 폴더내에 .htaccess 파일을 만들어서 아래의 내용을 입력해 보세요. 
    해당 폴더내에서 PHP, CGI 등을 실행하지 못하도록 막아줍니다. 

    물론 다른 경로를 통해 include시키는 등의 복잡한 공격은 따로 또 막으셔야겠지만, 
    업로드 폴더의 파일명을 직접 주소창에 적어서 웹쉘을 실행하는 가장 흔한 공격 방식은 
    이것만으로도 원천봉쇄가 됩니다. 

    PS. html 확장자로 되어있는 파일을 PHP로 해석하도록 설정해둔 경우에도 마찬가지로 방어가 되도록 수정했습니다.

    [ ▼ 참고 Source ]

    1Options -ExecCGI
    2RemoveHandler .php .php3 .php4 .php5 .phtml .pl .cgi .htm .html
    3RemoveType .php .php3 .php4 .php5 .phtml .pl .cgi .htm .html
    4DefaultType application/octet-stream
    5<IfModule mod_php5.c>
    6    php_flag engine off
    7</IfModule>

    전체댓글수 9

    [펌] 보안 XSS 취약점 원천봉쇄

    ------------------------------------- 발췌 시작 ------------------------------------- 

     

    "그누보드의 XSS 취약점 패치가 너무 잦다고 생각하신다면" 

     

    폼으로 전송되어 내용에 HTML 이 적용되는 필드는 XSS  취약점에서 자유로울수 없습니다. 

    그것이 그누보드 이거나 또는 타 BBS, CMS 프로그램 이거나를 가리지 않습니다. 

    다만, 이런 취약점이 알려졌지만 빨리 패치가 되느냐? 되지 않는냐? 의 차이점만 있을수 있습니다. 

     

    (중략) 

     

    위 조건들을 모두 막았다고 하더라도 아직 공개되지 않은 취약점이 있을수 있으므로 

    HTML 사용시의 XSS 취약점을 완벽하게 해결하는 방안은 없다고 봐야 합니다. 

     

    (중략) 

     

    아직 그누보드는 <> 를 감싼 태그를 사용하여 글 작성을 하므로 XSS 취약점에서 자유로울수 없으며 

    <> 태그를 사용하는한 앞으로도 자유로울수 없을것 입니다. 

     

    그누보드의 보안패치가 자주 올라오는 이유를 이제 어느 정도는 공감하시겠죠? 

     

    ------------------------------------- 발췌 끝 ------------------------------------- 

     

     

     

    아놔 이런 한심한....!! 이라고 하려다가 그냥 한숨만 쉬고 말았네요. 

     

    XSS 필터링은 그렇게 어려운게 아닙니다. 발상이 잘못되었기 때문에 어렵게 보이는 것 뿐입니다. 

    지금이 1999년도 아니고, 수많은 사람들이 사용하는 프로그램이XSS 취약점 때문에 

    일주일이 멀다하고 업데이트가 필요하다면 개발자의 실력을 의심하지 않을 수 없습니다. 

     

     

     

    이 게시판에도 종종 올라오는 XSS 필터링 라이브러리들, 

    그리고 제로보드와 그누보드 등 대부분의 게시판 프로그램들이 사용하는 필터링 알고리즘들에는 

    두 가지 치명적인 허점이 있습니다. 이것 때문에 계속 뚫리는 것입니다. 

     

    1. 위험한 태그, 속성, 이벤트만 콕콕 찍어 막으려고 하는 blacklisting 기법을 사용한다. 

    2. HTML에 오류가 있거나 웹표준에 어긋나는 태그를 사용한 경우를 감안하지 않는다. 

     

     

     

    blacklisting은 수많은 태그, 속성, 이벤트들 중 "위험하다고 알려진" 것들만 블랙리스트에 등록해서 

    블랙리스트에 등록된 태그, 속성, 이벤트만 지우고, 나머지는 모두 허용해주는 방법입니다. 

    만약 HTML5처럼 새로운 태그나 속성이 생기면 블랙리스트에 아직 없으니 모두 허용해 버리게 됩니다. 

    만약 사용하기에 따라 위험할 수도 있는 속성이 블랙리스트에서 빠졌다면 그것도 허용해 버리게 됩니다. 

    무엇이 허용되는지조차 분명하지 않으니 자나깨나 땜빵하느라 고생이 많습니다. 

     

    반면, "안전하다고 증명된" 태그, 속성, 이벤트만 화이트리스트(블랙리스트의 반댓말)에 등록해서 

    리스트에 등록된 것들만 허용하고 나머지는 죄다 없애버리는 whitelisting 기법을 사용한다면 

    새로운 태그나 속성이 추가되더라도 걱정이 없습니다. 

     

     

     

    HTML 오류에 신경쓰지 않는 필터링 라이브러리도 문제입니다. 

    대부분의 필터링 라이브러리들은 정규식을 사용해서 태그를 걸러내는데, 

    중간에 널바이트 또는 공백이 끼어 정규식에 잡히지 않는 엉터리 HTML도 

    대부분의 브라우저들은 아무 일 없다는 듯 실행해 주고 있는 것이 현실입니다. 

    onmouseover 이벤트는 걸렀지만 on\0mouseover 이벤트는 거르지 못하고, 

    javascript: 링크는 잡았지만 java  script: 링크는 잡지 못하는 거죠. 

    심지어는 이런 것도 있습니다: "> 

     

    위와 같은 문제를 해결하려면 태그가 잘못된 것도 걸러내줘야 합니다. 

    예를 들어 태그에 src 속성 대신 스크립트가 들어가 있으면 막아야 하는 거죠. 

    잘못된 태그를 다 걸러내주면 짝 없는

    태그 때문에 홈페이지 레이아웃이 깨지는 것도 막을 수 있습니다. 

     

     

     

    HTML Purifier는 해외의 보안 전문가들로부터 철저하게 검증받은 필터링 라이브러리입니다. 

    whitelisting 기법을 사용하고, 잘못된 태그도 확실하게 걸러내줍니다. 

    이걸 사용하면 앞으로 아주 오랫동안 XSS 취약점 걱정은 하지 않아도 됩니다. 

    http://htmlpurifier.org/ 

     

    아래의 참고소스 란에 사용방법 예제를 넣었더니 내용이 많아서 그런지, 잘려서 나오네요. 

    다른 곳에 올려놓았으니 참고하세요. https://gist.github.com/kijin/5829736 

     

    주의사항: 

     

    1. HTML 소스를 완전히 분해한 후, 안전하다고 검증된 태그, 속성, 이벤트만 다시 조합하여 

    안전하고 오류 없는 소스를 생성해 주는 라이브러리입니다. 그만큼 처리속도가 느리다는 점 기억하시고, 

    게시물 컨텐츠처럼 반드시 HTML이 필요한 경우에만 사용하세요. 

    게시물 제목이나 댓글처럼 HTML이 필요없는 경우 그냥 htmlspecialchars 또는 strip_tags 사용. 

    또한 페이지 표시할 때마다 매번 필터링하지 말고, DB에 저장하기 전에 한 번만 필터링하세요. 

     

    2. 문법에 어긋나는 태그는 가차없이 제거하므로, HTML 소스가 아주 심하게 망가져있는 경우 주의하세요. 

     

    3. 첨부파일 업로드를 사용한 XSS 공격은 게시물 내용과 별도로 막아주셔야 합니다. 

        http://www.phpschool.com/link/tipntech/78863 

     

    iframe 동영상 허용 리스트는 이 게시판에 얼마전 레어닉님이 올려주신 라이브러리를 참고했습니다. 

    http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=76911 

     

    ■ 11q.kr은 정보를 찾아 공유 합니다.
    https://11q.kr https://11q.kr https://11q.kr http://shimss.mooo.com


    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view photo|insert||||||||||||||||||

    관련자료

    댓글목록

    등록된 댓글이 없습니다.

    목록

    새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사




    Total 1,684 / 74 Page
    [ Hyper-V : VM의 Android ISO 설치작업 ]

    Hyper-V : VM의 Android ISO 설치작업11q.kr작업 기준으로 작업파일 준비기본 설정 하였습니다이제 setting 진행ISO 파…

    [ 시놀로지 DSM Version: 6.2.3-25426 Update 3 에서 PHP.INI 수정 홈페이지 첨부… ] 댓글 1

    시놀로지 DSM Version: 6.2.3-25426 Update 3 에서 PHP.INI 수정 홈페이지 첨부 용량 수정 확장 하기사용버전 DSM…

    [ 안드로이 장비에 termux로 epg2xml의 TV채널 방송정보 xmltv.xml 만들기 작업 ] 댓글 3

    안드로이 장비에 termux로 epg2xml의 TV채널 방송정보 xmltv.xml 만들기 작업TV 실시간 방송채널 정보 epg2xml 의 xml…

    [ 가장 쉬운 TCP port 포트가 열려 있는지 또는 닫혀 있는지 어떻게 알 수 있는 방법 ]

    TCP 포트가 열려 있는지 또는 닫혀 있는지 어떻게 알 수 있습니까?1) 가장 쉬운 방법은https://www.yougetsignal.com/t…

    [ ● Synology NAS SSH 접속시 한글 파일 제대로 표시하기 및 파일 인코딩 변환 / txz 파일 … ]

    ●Synology NAS SSH 접속시 한글 파일 제대로 표시하기 및 txz 파일 압축 해제.-시놀로지 설치 작업 장비 확인 방법 :root@h…

    [ ● ESxi VM Redpill 1008일자 부트로더 변경 부팅 부분과 HDD연결 문제 SataPortMap… ] 댓글 6

    ● ESxi VM Redpill 1008일자 부트로더 변경 부팅 부분과 HDD연결 문제SataPortMap=6 ( 온보드 6개 단자 )< …

    [ ● ESxi로 윈도우11-64bit를 VM 생성 원격 실행 사례 설정값 ]

    ●ESxi로 윈도우11-64bit를 VM 생성 원격 실행 사례 설정값▶윈도우11-64bit설정 값- 하드 디스크는 40G정도 > SCSI …

    [ ● esxi 호스트의 시간 수동 설정 ntp 시간및 날짜 시계 에러 대응 ]

    ●esxi 호스트의 시간 수동설정 ntp 시간및 날짜 시계 에러 대응https://11q.kr/www/bbs/board.php?bo_table=…

    [ ● plex 영상 원본품질 재생으로 로컬에서 영상을 원본으로 시청하기 ] 댓글 1

    ●plex 영상 원본품질 재생으로로컬에서 영상을 원본으로 시청하기설치 : pc 및 시놀로지nas 설치시청 : plex web에서 실행 확인후 주…

    [ ● 나의 synoinfo.conf 설정 값 확인하여 설정값 변경 작업 준비 ] 댓글 5

    ● 나의 synoinfo.conf 설정 값 확인하여 설정값 변경 작업 준비현재 변경 없이 나의 구성어렵네요변경내용 grub.cfg 변경만으로 무…

    [ ★ 부트로더 강력추천 v045_v3 )헤놀로지 RedPill tinyCore 만능부트로더 xpenology … ] 댓글 8

    ★★★ 부트로더 강력추천 v045_v3 )헤놀로지 RedPill tinyCore 만능부트로더 xpenology dsm7.0.1적용 간단 빌드ht…

    [ ● Esxi server veeam 백업 프로그램 다운로드 방법 ]

    ● Esxi server veeam 백업 프로그램 다운로드 방법 헤놀로지 설치 가동에 VMDK 백업으로 작업 진행 합니다1.Esxi server…

    [ ●VMware Workstation 16 Player 무료 다운로드 가상화 프로그램 사용가능 ] 댓글 3

    ●VMware Workstation 16 Player 무료 다운로드 가상화 프로그램 사용가능https://www.vmware.com/kr/pro…

    [ ● SynoCommunity SynoCIi Monitor Tools 설치 하여 랜속도 시스템 응답 확인… ]

    ●SynoCommunitySynoCIi Monitor Tools 설치 하여 랜속도시스템 응답 확인 하기dsm7.0에서 동작중인패키지 소스 추가하…

    [ ●초기설치방법 및 작업 실패) DS920+ / DS1621+ 용 Tinycore 리눅스 이미지 96M 다운로… ] 댓글 1

    ●초기설치방법 및 작업 실패)DS920+ / DS1621+ 용 Tinycore 리눅스 이미지 96M 다운로드 설치작업을 초기 설치 작업을 준비했…

    [ ● 안드로이드 스마트폰에서 x-plore로 간단한 시놀로지 로컬ip로 시놀로지 서버접속 하기 ]

    ● 안드로이드 스마트폰에서 x-plore로간단한 시놀로지 로컬ip로 시놀로지 서버접속 하기 ▶안드로이드 스마트폰에서 x-plore로 접속 하기 …

    [ ● [nas] Synology NAS 에서 crontab 사용 방법(사용불가) ]

    ●[nas] Synology NAS 에서 crontab 사용 방법본자료는 동작 하지 않습니다https://llallallall.blogspot.…

    [ ● ESXi작업)3가지 방법으로 ESXi VM을 백업하는 방법 ]

    ● ESXi작업)3가지 방법으로 ESXi VM을 백업하는 방법작업중지후 내보내기 백업https://www.vinchin.com/en/blog/b…


    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-07-07 23:30:57

    오늘의 홈 현황


    • 현재 접속자♨ 632 명
    • 오늘 가입자※ 2 명
    • 어제 가입자※ 5 명
    • 주간 가입자※ 17 명
    • 오늘 방문자 2,001 명
    • 어제 방문자 2,424 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,419,909 명
    • 전체 게시물※ 8,680 개
    • 전체 댓글수※ 24,852 개
    • 전체 회원수 11,096 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑