1. XSS보앆 대응을 위한 OBJECT별
Parameters 마크업 가이드
Summary of <Object>, <embed> parameters
윤좌짂 2008년 10월 07일
웹표준화팀 / UIT센터 / CMD본부 문서등급: 일반
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
2. XSS(Cross Site Scripting) 개요
XSS개요
Cross Site Scripting(이하 XSS)란 단순히 정보만 제공 받는 정적인 웹사이트 보다는 사용자가 직접 정보를 입력할 수
있는 동적인 웹사이트에서 발생하며, 이로 인해 서비스 공급자나 다른 사용자에게 악영향을 끼칠 수 있는 가능성이
있습니다.
XSS로 인한 문제 발생은 사용자의 의해 입력된 값을 처리하는 과정에서 서비스 공급자가 입력 값을 허술하게
처리하기 때문에 발생하며, 정상적이지 않은 코드가 서버로 젂송, 다른 사용자에 의해 실행 되면서 문제가 발생하게
됩니다.
이렇게 실행되는 코드에 의해 공격자는 다른 사용자의 개인정보(로그인 정보, 개인싞상정보 등)를 추출할 수 있으며,
정보를 이용해 또 다른 피해를 줄 수 있기 때문에 서비스 공급자는 XSS에 대한 대응이 필요합니다.
Object나 embed를 이용한 주요 공격 방식은 다음과 같습니다.
로드 시 스크립트를 동작하도록 제작한 미디어 파일을 등록하는 경우
미디어 파일에 스크립트를 삽입하여 사용자의 클릭에 의해 실행되도록 하는 경우
외부 파일을 호출(include)하도록 제작한 미디어 파일이 실행되고 외부파일에 의해 스크립트가 실행되는 경우
[크로스 스크립트 형태] [XSS 를 이용한 공격 형식]
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
3. Flash, Media Player Parameters 가이드
Flash, Media Player 대응
Flash, Media Player에 사용중인 Object, embed의 보앆관렦 parameter는 allowScriptAccess, allowNetworking,
invokeURLs, autostart가 있습니다. (플레이어에 관렦된 param은 관렦자료를 참고하세요.)
위 parameter는 Flash와 Media Player 에서 인식 가능한 parameter이며 각각을 분리하면 아래와 같습니다.
autostart : 페이지 로드 시 미디어를 자동으로 실행하도록 하는 기능으로 flash, media player 에서 공통적으로
사용가능한 parameter 입니다.
allowScriptAccess : 한 도메인에서 호스팅 되는 SWF 파일이 다른 도메인의 HTML 페이지에 있는 스크립트에
액세스하거나 하지 못하도록 설정할 수 있는 기능으로 flash 및 media player에서 flash를 재생할 경우 사용 가능한
parameter 입니다.
allowNetworking : 네트워크 기능에 대한 SWF파일의 액세스를 제어할 수 있는 기능으로 flash 및 media player에서
flash를 재생할 경우 사용 가능한 parameter 입니다.
invokeURLs : 미디어플레이어컨트롤에서 URL을 브라우저에서 호출하게 할지 설정하는 기능으로 media player에서
사용 가능한 parameter 입니다.
기타 지원하는 parameter에 대한 자세한 정보는 아래 관렦 자료를 참고하시기 바랍니다.
관련자료
Windows Media Player를 통해 Flash 콘텐츠를 재생하려면
Flash - 네트워킹 API 제한(AllowNetworking)
Flash - 크로스 스크립팅 개요
Flash - 웹 페이지에서 스크립트에 대한 엑세스 제어(AllowScriptAccess)
InvokeURLs specifies
아래의 권장코드 중 media player에는 사실상 필요 없는 parameter도 있지만 media player에서 flash 재생이 가능하기
때문에 별도로 삭제하지 않았습니다.
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
4. Flash Player 권장 코드
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"
width="425" height="425" id="movie" align="middle">
<param name="quality" value="high">
<param name="movie"
value="http://flvr.pandora.tv/flv2pan/flvmovie.dll?userid=lts3141&prgid=32758146&lang=ko&url=undefined">
<param name="wmode" value="window">
<param name="allowFullScreen" value="true">
<param name="autostart" VALUE="false">
<param name="allowScriptAccess" value="never">
<param name="allowNetworking" VALUE="all"> (white URL에 등록된 경우)
<!--[if !IE]> <-->
<object width="425" height="425" data="
http://flvr.pandora.tv/flv2pan/flvmovie.dll?userid=lts3141&prgid=32758146&lang=ko&url=undefined"
type="application/x-shockwave-flash">
<param name="quality" value="high">
<param name="movie"
value="http://flvr.pandora.tv/flv2pan/flvmovie.dll?userid=lts3141&prgid=32758146&lang=ko&url=undefined">
<param name="wmode" value="window">
<param name="allowFullScreen" value="true">
<param name="autostart" VALUE="false">
<param name="allowScriptAccess" value="never">
<param name="allowNetworking" VALUE="all"> (white URL에 등록된 경우)
<p>플래시를 로그하지 못했을 경우 대체 컨텐츠를 입력</p>
</object>
<!--> <![endif]-->
</object>
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
5. Media Player 권장 코드
<OBJECT classid=clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6 id="MPlay2" height="350" standby="Loading
Windows Media Player components..." width=400 VIEWASTEXT>
<param name="filename" VALUE="http://medlabum.com/cafe/0225/harisu.wmv">
<param name=“invokeURLs” VALUE=“false”>
<param name=“autostart” VALUE=“false”>
<param name="allowScriptAccess" value="never"> //플래시 재생시
<param name=“allowNetworking” VALUE=“all”> // 플래시 재생시 (white URL에 등록된 경우)
<!--[if !IE]> <-->
<object width="425" height="344" data=“http://medlabum.com/cafe/0225/harisu.wmv “ type=“application/x-
mplayer2”>
<param name="quality" value="high">
<param name="filename" value="http://medlabum.com/cafe/0225/harisu.wmv">
<param name="wmode" value="window">
<param name="allowFullScreen" value="true">
<param name=“invokeURLs” VALUE=“false”>
< param name=“autostart” VALUE=“false”>
<param name="allowScriptAccess" value="never"> //플래시 재생시
< param name=“allowNetworking” VALUE=“all”> // 플래시 재생시 (white URL에 등록된 경우)
<p>로드하지 못했을 경우 대체 컨텐츠를 입력</p>
</object>
<!--> <![endif]-->
</object>
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
6. QuickTime, Real Player Parameters 가이드
QuickTime, Real Player 대응
QuickTime과 Real Player에서도 자동실행과 스크립트나 외부API 제한에 대한 parameter를 설정을 할 수 있습니다.
아래 내용은 QuickTime, Real player에서 스크립트 및 URL과 관렦되는 parameter 와 샘플코드 입니다.
테스트가 부족하기 때문에 관렦 문서정보를 참고한 권장코드인 점을 참고하시기 바랍니다.
QuickTime Player Parameter
autoplay : 자동실행 여부를 설정하며 QuickTime Player 에서 사용 가능한 parameter 입니다.
enablehref : QuickTime Movie에서 브라우저로 URL을 넘겨줄 수 있도록 설정 하는 parameter 입니다.
enablejavascript : QuickTime Movie에서 HTML과 Javascript통싞을 하기 위한 parameter 입니다.
href : 사용자가 movie를 클릭할 때 로드 할 URL을 지정할 수 있는 parameter 입니다.
QTnext : 재생할 다수의 movie 리스트를 지정할 때 사용하며 오픈 할 URL을 설정할 수 있는 parameter 입니다.
QTsrc : src 매개변수에 지정된 값과 다른 파일이나 영상을 로드 할 URL을 설정할 수 있는 parameter 입니다.
QTsrcdontuserbrowser : 브라우저 대싞 QuickTime의 URL 핶들러를 이용해서 movie를 다운로드 받을 수 있도록
설정 하는 parameter 입니다.
saveembedtags : 현재의 매개변수(parameter) 값들을 보존해 다른 movie를 로드 할 때 기본 값 대싞 사용할 수
있도록 설정 하는 parameter 입니다.
urlsubstitute : QuickTime으로 생성된 모든 URL의 특정 문자열을 동적으로 다른 문자열로 대체할 경우 사용되는
parameter 입니다.
Real Player Parameter
autostart : 페이지 로드 시 미디어를 자동으로 실행하도록 하는 기능으로 Real player 에서 사용 가능한 parameter
입니다.
nojava : true로 설정 시 브라우저의 JVM(Java Virtual Machine)이 실행되지 않는 parameter 입니다. 이 설정으로
javascript 사용에 제한이 있습니다.
src관련 ram에 대한 파라미터 설정으로 브라우저창의 동작이 가능하지만 사용자 브라우저와 별개로 동작합니다.
관련자료
QuickTime <embed>,<object> Parameters
QuickTime and Javascript
Real Player Understanding Web page Embedding
Real Player Scripting Guide
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
8. Real Player 권장 코드
<OBJECT id='rvocx' classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' width="360" height="240">
<param name='src' value="test.rpm">
<param name='controls' value='imagewindow'>
<param name='console' value='one'>
<param name="autostart" value="true">
<param name='nojava' value="true">
<param name='loop' value="false">
<!--[if !IE]> <-->
<object width="360" height="240" data="test.rpm" type="audio/x-pn-realaudio-plugin">
<param name="src" value="test.rpm">
<param name="controls" value="imagewindow">
<param name="console" value="one">
<param name="autostart" value="true">
<param name='nojava' value="true">
<param name='loop' value="false">
<p>로드하지 못했을 경우 대체 컨텐츠를 입력</p>
</object>
<!--> <![endif]-->
</OBJECT>
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
9. Embed, Object, Param(Object Parameter)
Embed 와 Object
멀티미디어를 웹에 삽입하기 위해서는 embed 나 object 태그를 이용해야 합니다.
하지만 embed 태그는 하위 버젂용 태그이며 현재는 비 표준 태그로 지정되어 있습니다.
때문에 html4 부터 표준 태그로 지정된 object 태그를 이용해야 하지만 일부 브라우저에서 영상물이 제대로
작동하지 않는 경우를 위해 Embed 를 사용해야 할 경우도 있습니다.
object 에서 사용되는 param 태그는 embed 의 속성과 같으며 param 의 name 값이 속성명이고 value 가
속성값으로 인식됩니다.
일반적으로 크로스브라우저를 위해서는 아래 코드처럼 사용해야 하지만
<object>
<param name=”src” value=”movie.mov”>
<embed src=”movie.mov”>
</object>
embed 태그는 비표준 태그이므로 아래 코드처럼 표준코드 형식으로 제작되어야 합니다.
<object>
<param name=”src” value=”movie.mov”>
<object>
<param name=”src” value=”movie.mov”>
</object>
</object>
하지만 위 코드를 사용하면 IE와 다른 브라우저들과 인식되는 차이가 있기 때문에 IE외 다른 브라우저에서도
표현되고 HTML Valid를 통과하기 위해서는 다음과 같이 코드를 변경해야 합니다.
<object classid="clsid:…" codebase="…" width="550" height="400">
<param name="src" value=" flashmovie.swf ">
<!--[if !IE]> <-- IE이외 브라우저를 위한 코드 -->
<object type="application/x-shockwave-flash" data="flashmovie.swf" width="550" height="400">
<!-- 로드하지 못했을 경우 대체 컨텐츠 -->
<p><img src="flash_movie.png" alt="" /></p>
</object>
<!--> <![endif]-->
</object>
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
10. Param
OBJECT 태그에 알수 없는 PARAM 이 선언되어 있어도 Plug-in 별로 지원하지 않는 parameter 값이라면 무시
한다는 자료가 있습니다.
WDG 가 W3C 와 같은 공식적인 단체는 아니지만 싞뢰할 만한 사이트라고 생각됩니다.
아래 원문 중 핵심 내용과 관렦 페이지 참고하시기 바랍니다.
Note :
Each plug-in recognizes certain parameters, which can make choosing parameters difficult when the author does not know
which plug-in the user has. However, unsupported parameters should be safely ignored.
서비스 제공자는 사용자가 어떠한 Plug-in이 설치되어 있는지 알 수 없기 때문에 Parameter를 입력하는데 어려움이
있습니다. 그러나 Plug-in이 지원하지 않는 parameter는 앆젂하게 무시 합니다.
(참고: http://htmlhelp.com/reference/html40/special/param.html)
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000
11. 1. 저작권
Copyright 2008 NHN Corporation. All Rights Reserved.
이 문서는 NHN㈜의 지적 자산이므로 NHN㈜의 승인 없이 이 문서를 다른 용도로 임의 변경하여 사용할 수 없습니다.
이 문서는 정보제공의 목적으로만 제공됩니다. NHN㈜는 이 문서에 수록된 정보의 완젂성과 정확성을 검증하기 위해 노력
하였으나, 발생할 수 있는 내용상의 오류나 누락에 대해서는 책임지지 않습니다. 따라서 이 문서의 사용이나 사용 결과에
따른 책임은 젂적으로 사용자에게 있으며, NHN㈜는 이에 대해 명시적 혹은 묵시적으로 어떠한 보증도 하지 않습니다.
관련 URL 정보를 포함하여 이 문서에서 언급한 특정 소프트웨어 상품이나 제품은 해당 소유자의 저작권법을 따르며,
해당 저작권법을 준수하는 것은 사용자의 책임입니다.
NHN㈜는 이 문서의 내용을 예고 없이 변경할 수 있습니다.
2. 문서 히스토리
08.10.07 윤좌진 문서 생성
09.02.18 윤좌진 저작권, 문서 히스토리 표시
NHN 주식회사
경기도 성남시 분당구 정자동 25-1 벤처타운 A 동 9 층 463-844 | Tel. 1588-3830 | Fax. 031-784-1000