HTML 보안 강화: toStaticHTML 세부 정보

HTML 보안 강화: toStaticHTML 세부 정보(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

HTML, CSS 및 JavaScript 기능 및 차이점에서 설명한 대로 앱의 로컬 컨텍스트 페이지에 삽입하는 HTML은 toStaticHTML 메서드를 통해 필터링됩니다.

이 보안 제한은 다음 속성과 메서드에 영향을 줍니다.

다음 섹션에서는 안전한 것으로 간주되는 콘텐츠와 그렇지 않은 콘텐츠에 대해 설명합니다.

이 필터링 프로세스를 통과하지 못한 HTML을 해결하는 방법에 대한 자세한 내용은 HTML, CSS 및 JavaScript 기능 및 차이점을 참조하세요.

요소

다음 목록에서는 요소가 안전한지 여부에 대해 설명합니다. 안전하지 않은 요소를 찾으면 예외가 throw됩니다.

요소 허용
알 수 없는 태그 아니요
XML 태그 아니요
<!-- --> 아니요
a
abbr
acronym
address
altGlyph
altGlyphDef
altGlyphItem
applet 아니요
area
article
aside
audio
b
base 아니요
bdi
bdo
bgsound
big
blink 아니요
blockquote
body
br
button
canvas
caption
center
circle
cite
clipPath
code
col
colGroup
color-profile
command
comment 아니요
cursor
datalist
dd
defs
del
desc
details
dfn
dir
div
dl
dt
ellipse
em
embed 아니요
EVENT 아니요
feBlend
feColorMatrix
feComponentTransfer
feComposite
feConvolveMatrix
feDiffuseLighting
feDisplacementMap
feDistantLight
feFlood
feFuncA
feFuncB
feFuncG
feFuncG
feFuncR
feGaussianBlur
feImage
feMerge
feMergeNode
feMorphology
feOffset
fePointLight
feSpecularLighting
feSpotlight
feTile
feTurbulence
fieldset
figcaption
figure
filter
font-face
font-face-format
font-face-name
font-face-src
font-face-uri
font
footer
form
frame 아니요
frameset 아니요
g
glyph
glyphRef
h1
h2
h3
h4
h5
h6
head
header
hgroup
hkern
hr
html
i
iframe 아니요
image
img
input
ins
isindex 아니요
kbd 아니요
keygen*
label
layer 아니요
legend
li
line
linearGradient
link 아니요
listing
map
mark
marquee
mask
menu
meta 아니요
metadata
meter
missing-glyph
mpath
multicol 아니요
nav
nextid
nobr
noframes
noscript 아니요
object 아니요
ol
optGroup
option
output
p
param 아니요
path
pattern
plaintext
polygon
polyline
pre
progress
q
radialGradient
rb 아니요
rect
rp 아니요
rt
ruby
s
samp
script 아니요
section
select
small
source*
spacer 아니요
span
stop
strike
strong
style
sub
summary
sup
svg
switch
symbol
table

tBody
td
text
textArea
textPath
tfoot
th
thead
time
title
tr
track*
tref
tspan
tt
u
ul
var 아니요
video
view
vkern
wbr
XML 아니요
XMP

 

메타 요소

메타 요소가 안전한지 여부는 메타 요소의 특성과 값에 따라 결정됩니다. 예를 들어 현재 페이지에서 리디렉션하는 데 사용되는 특성도 있지만 페이지의 문자 집합을 지정하는 것과 같은 유용한 역할을 하는 특성과 값도 있습니다.

이 때문에 시스템에서는 메타 요소를 찾으면 요소를 처리하고 해당 특성과 값을 읽은 다음 안전한 버전의 메타 태그를 출력합니다. 입력 HTML에서 메타 요소가 지정된 위치에 상관없이 처리된 메타 태그는 항상 헤드 요소의 첫 번째 자식으로 표시됩니다.

특성

다음 목록에서는 특성이 안전한지 여부에 대해 설명합니다. 안전하지 않은 특성을 찾으면 예외가 throw됩니다.

특성 관련 요소 허용

알 수 없는 특성

아니요

태그에 적합하지 않은 특성

아니요

abbr

td, th

a-charset

form

아니요

a

form, input

아니요

accessKey

이 특성은 모든 요소에 허용됩니다.

action

form

아니요

aggregator

td, th

아니요

align

caption

align

applet, iframe, img, input, object

align

legend

align

table

align

hr

align

div, h1, h2, h3, h4, h5, h6, p

align

col, colgroup, tbody, td, tfoot, th, thead, tr

alt

applet

alt

area, img

alt

input

archive

object

아니요
aria-* aria 특성은 모든 요소에 허용됩니다.

async

audio

autocomplete

autofocus

autoplay

autostart

embed

아니요

axis

td, th

아니요

background

body

background

TABLE

background

td, TH

behavior

MARQUEE

BGCOLOR

TABLE

BGCOLOR

TR

BGCOLOR

td, th

BGCOLOR

body

BGCOLOR

marquee

bgProperties

body

border

TABLE

border

frameset, iframe,

아니요

border

img, object

borderColor

frameset, table, td, th, tr

borderColorDark

table, td, th, tr

bordercolorlight

table, td, th, tr

cellPadding

TABLE

cellSpacing

TABLE

challenge

char

col, colgroup, tbody, td, tfoot, th, thead, tr

charoff

col, colgroup, tbody, td, tfoot, th, thead, tr

charset

a

charset

link, script

아니요

charset

meta

checked

input

cite

blockquote, q

cite

del, ins

class

all elements  but base, head, html, meta, param, script, style, title

classid

object

아니요

clear

BR

code

applet

아니요

codebase

object

아니요

codebase

applet

아니요

codetype

object

아니요

color

basefont, font

color

hr

colfield

td, th

아니요

cols

FRAMESET

아니요

cols

TEXTAREA

아니요

colSpan

td, th

compact

DIR, dl, menu, ol, ul

content

META

아니요

coords

area

contenteditable 이 특성은 모든 요소에 허용됩니다.
contextmenu 이 특성은 모든 요소에 허용됩니다.

controls

IMG

아니요

coords

A

crosstab

TABLE

아니요

crosstabgrand

TABLE

아니요

data

object

아니요
data-win-bind 이 특성은 모든 요소에 허용됩니다.
data-win-control 이 특성은 모든 요소에 허용됩니다.
data-win-fragmentload 이 특성은 모든 요소에 허용됩니다.
data-win-fragmentload 이 특성은 모든 요소에 허용됩니다.
data-win-options 이 특성은 모든 요소에 허용됩니다.
data-win-res 이 특성은 모든 요소에 허용됩니다.
data-win-resid 이 특성은 모든 요소에 허용됩니다.

datafield

td, th

아니요

dataFld

DIV

아니요

dataFormatAs

DIV

아니요

dataSrc

div, param

datetime

del, ins

declare

object

아니요

defer

SCRIPT

아니요
default

dir

이 특성은 모든 요소에 허용됩니다.

direction

MARQUEE

dirname

disableddisabled

button, input, optgroup, option, select, textarea

disposition

LINK

아니요
draggable 이 특성은 모든 요소에 허용됩니다.
dropzone 이 특성은 모든 요소에 허용됩니다.

dynsrc

IMG

enctype

form

아니요

face

basefont, font

filter

td, th, tr

아니요

for

LABEL

아니요
form
formaction
formenctype
formmethod
formnovalidate
formtarget

formula

TD

아니요

frame

TABLE

아니요

frameBorder

frame, iframe

아니요

frameSpacing

frame, frameset, iframe

아니요

gutter

MULTICOL

아니요

headers

td, th

height

IFRAME

아니요

height

marquee

height

td, th, TR

height

img, object, input

height

applet

아니요

height

table

hidden 이 특성은 모든 요소에 허용됩니다.
high

href

a, area, link

href

base

hreflang

a, link

hspace

applet, img, object

hspace

marquee

http-Equiv

META

아니요

id

이 특성은 모든 요소에 허용됩니다.

icon

if

W3C에서는 지원되지 않지만 MSO에서 지원됩니다.

아니요

ifapp

W3C에서는 지원되지 않지만 MSO에서 지원됩니다.

아니요

ismap

img, input

아니요
keytype
kind

label

OPTION

label

OPTGROUP

lang

이 특성은 모든 요소에 허용됩니다.

language

SCRIPT

아니요

left

LAYER

아니요

leftmargin

body

link

body

longdesc

IMG

longdesc

frame, iframe

아니요

loop

BGSOUND, embed, img, MARQUEE

low

lowsrc

IMG

manifest

marginHeight

frame, iframe

아니요

marginWidth

frame, iframe

아니요
max

maxLength

input

아니요

media

STYLE

아니요

media

LINK

아니요

method

form

아니요

methods

a, link

아니요
min
msallowcapture 이 특성은 모든 요소에 허용됩니다.

msallowclip

이 특성은 모든 요소에 허용됩니다.

mstagchanged

img

multiple

SELECT

name

모든 요소

아니요

noHref

AREA

아니요
novalidate

noResize

FRAME

아니요

noShade

HR

noWrap

td, th

ns

W3C에서는 지원되지 않지만 MSO에서 지원됩니다.

아니요

object

applet

아니요
on* on* 특성(onabort 등)은 일부 요소에서 허용되지 않습니다. 아니요
open
optimum

pagefield

td, th

아니요
pattern
placeholder
poster

prefix

W3C에서는 지원되지 않지만 MSO에서 지원됩니다.

아니요
preload

profile

HEAD

아니요

prompt

ISINDEX

아니요
pubdate
radiogroup

readonly

TEXTAREA

readonly

input

rel

a, link

required

rev

a, link

reversed
role 이 특성은 모든 요소에 허용됩니다.

rowfield

td, th

아니요

rows

FRAMESET

아니요

rows

textarea

rowSpan

td, th

rules

TABLE

sandbox
scheme

META

scope

td, th

scoped

scrollamount

MARQUEE

scrolldelay

MARQUEE

scrolling

frame, iframe

아니요
seamless
security

iframe

selected

option

shape

AREA

shape

A

shapes

BGSOUND, img, input, MARQUEE, object, select, textarea

아니요

size

HR

아니요

size

FONT

size

input

size

BASEFONT

size

SELECT

sizes

span

COL

span

COLGROUP

spellcheck 이 특성은 모든 요소에 허용됩니다.

src

SCRIPT

아니요

src

input

src

frame, iframe

아니요

src

IMG

src

bgsound

srcdoc
srclang

standby

object

아니요

start

OL

start

img

step

style

이 특성은 모든 요소에 허용됩니다.

summary

table

subtotal

td, th

아니요

tabIndex

a, area, button, input, select, textarea

tabIndex

object

아니요

tabIndex

이 특성은 모든 요소에 허용됩니다.

target

a, area, base, form, link

아니요

text

body

title

이 특성은 모든 요소에 허용됩니다.

top

LAYER

아니요

topmargin

body

type

a, link

type

object

type

PARAM

type

SCRIPT

type

STYLE

type

input

아니요

type

li

type

OL

type

UL

type

BUTTON

아니요

usemap

img, input, object

vAlign

col, colgroup, tbody, td, tfoot, th, thead, tr

vAlign [c41]

caption

value

input

value

OPTION

value

PARAM

아니요

value

button

value

LI

valuetype

PARAM

아니요

version

html

vLink

body

volume

embed

아니요

vspace

applet, img, object

vspace [c44]

marquee

webpartid [c45]

div

wide

W3C에서는 지원되지 않지만 MSO에서 지원됩니다.

아니요

width

HR

width

IFRAME

width

img, object, input

width

marquee

width

table

width

td, th

width

applet

아니요

width

col

width

colgroup

width

pre

wrap

TEXTAREA

x-ms-flow

 

CSS 의사 클래스, 의사 요소 및 규칙

다음 목록에서는 의사 클래스, 의사 요소 또는 규칙이 안전한지 여부에 대해 설명합니다. 안전하지 않은 항목을 찾으면 예외가 throw됩니다.

의사 클래스, 의사 요소 또는 규칙 허용
알 수 없는 의사 클래스, 의사 요소 및 규칙아니요
!important
:active
:first-letter
:first-line
:hover
:link
:visited
@charset 아니요
@font-face 아니요
@import 아니요
@media
@page

 

CSS 속성

다음 목록에서는 CSS 속성이 안전한지 여부에 대해 설명합니다. 안전하지 않은 속성을 찾으면 예외가 throw됩니다.

속성허용
알 수 없는 속성아니요
CSS 주석(/* 주석 */)아니요
-ms-animation
-ms-animation-delay
-ms-animation-direction
-ms-animation-duration
-ms-animation-iteration-count
-ms-animation-name
-ms-animation-play-state
-ms-animation-timing-function
-ms-backface-visibility
-ms-behavior
-ms-box
-ms-box-align
-ms-content-zoom-chaining
-ms-content-zoom-max
-ms-content-zoom-max-style
-ms-content-zoom-min-style
-ms-content-zoom-snap-interval
-ms-content-zoom-snap-start
-ms-content-zoom-snap-style
-ms-content-zoom-snap-type
-ms-content-zooming
-ms-grid
-ms-grid-cell
-ms-grid-column
-ms-grid-column-align
-ms-grid-column-span
-ms-grid-columns
-ms-grid-row
-ms-grid-row-align
-ms-grid-row-span
-ms-perspective
-ms-perspective-origin
-ms-scroll-chaining
-ms-scroll-rails
-ms-scroll-snap-points-x
-ms-scroll-snap-points-y
-ms-scroll-snap-style
-ms-scroll-snap-type
-ms-scroll-snap-x
-ms-scroll-snap-x-interval
-ms-scroll-snap-x-start
-ms-scroll-snap-y
-ms-scroll-snap-y-interval
-ms-scroll-snap-y-start
-ms-scrollbar-3d-light-color
-ms-scrollbar-dark-shadow-color
-ms-transform
-ms-transform-origin
-ms-transform-style
-ms-transition
-ms-transition-delay
-ms-transition-duration
-ms-transition-property
-ms-transition-timing-function
accelerator
alignment-baseline
azimuth
background
background-attachment
background-clip
background-color
background-image
background-origin
background-position
background-position-x
background-position-y
background-repeat
background-size
baseline-shift
behavior
block-direction
border
border-bottom
border-bottom-color
border-bottom-left-radius
border-bottom-right-radius
border-bottom-style
border-bottom-width
border-collapse
border-color
border-left
border-left-color
border-left-style
border-left-width
border-radius
border-right
border-right-color
border-right-style
border-right-width
border-spacing
border-style
border-top
border-top-color
border-top-left-radius
border-top-right-radius
border-top-style
border-top-width
border-width
bottom
box-shadow
break-after
break-before
break-inside
caption-side
clear
clip
clip-bottom
clip-left
clip-path
clip-right
clip-rule
color
color-interpolation-filters
column-count
column-fill
column-gap
column-rule
column-rule-color
column-rule-style
column-rule-width
column-span
column-width
columns
content
counter-increment
counter-reset
css-float
cue
cue-after
cue-before
cursor
direction
display
dominant-baseline
elevation
empty-cells
fill
fill-opacity
fill-rule
filter
float
flood-color
flood-opacity
font
font-color
font-emphasize
font-emphasize-position
font-emphasize-style
font-family
font-size
font-size-adjust
font-stretch
font-style
font-variant
font-weight
glyph-orientation-horizontal
glyphorientation-vertical
has-layout
height
horiz-align
ime-mode
kerning
language
layout-flow
layout-grid
layout-grid-char
layout-grid-line
layout-grid-mode
layout-grid-type
left
letter-spacing
line-break
line-height
list-image-1
list-image-2
list-image-3
list-style
list-style-image
list-style-position
list-style-type
margin
margin-bottom
margin-left
margin-right
margin-top
marker
marker-end
marker-mid
marker-offset
marker-start
marks
masks
max-width
min-height
min-width
mso-………. 아니요
nav-banner-image
navbutton_background_color
navbutton_home_hovered
navbutton_home_normal
navbutton_home_pushed
navbutton_horiz_hovered
navbutton_horiz_normal
navbutton_horiz_pushed
navbutton_next_hovered
navbutton_next_normal
navbutton_next_pushed
navbutton_prev_hovered
navbutton_prev_normal
navbutton_prev_pushed
navbutton_up_hovered
navbutton_up_normal
navbutton_up_pushed
navbutton_vert_hovered
navbutton_vert_normal
navbutton_vert_pushed
opacity
orphans
outline-color
outline-style
outline-width
overflow
overflow-x
overflow-y
padding
padding-bottom
padding-left
padding-right
padding-top
page
page-break-after
page-break-before
page-break-inside
panose-1
pause
pause-after
pause-before
pitch
pitch-range
pixel-bottom
pixel-height
pixel-left
pixel-right
pixel-top
pixel-width
play-during
pointer-events
pos-bottom
pos-height
pos-left
pos-right
pos-top
pos-width
position
punctuation-trim
punctuation-wrap
quotes
richness
right
row-span
ruby-align
ruby-overhang
ruby-position
scrollbar-3dlight-color
scrollbar-arrow-color
scrollbar-base-color
scrollbar-dark-shadow-color
scrollbar-face-color
scrollbar-highlight-color
scrollbar-shadow-color
scrollbar-track-color
separator-image
size
speak
speak-header
speak-numeral
speak-punctuation
speech-rate
src
stop-color
stop-opacity
stress
stroke yes
stroke-dasharray
stroke-dashoffset
stroke-linecap
stroke-linejoin
stroke-miterlimit
stroke-opacity
stroke-width
style-float
tab-interval
table-border-color-dark
table-border-color-light
table-layout
tab-stops
text-anchor
text-align
text-align-last
text-autospace
text-combine
text-decoration
text-decoration-blink
text-decoration-line-through
text-decoration-none
text-decoration-overline
text-decoration-underline
text-effect
text-fit
text-indent
text-justify
text-justify-trim
text-kashida
text-kashida-space
text-line-through
text-overflow
text-shadow
text-transform
text-underline
text-underline-color
text-underline-position
text-underline-style
top
top-bar-button
unicode-bidi
version
vert-align
vertical-align
visibility
voice-family
volume
white-space
width
windows
word-break
word-spacing
word-wrap
writing-mode
z-index
zoom

 

스마트 태그

toStaticHTML은 모든 스마트 태그와 관련 특성을 제거합니다.

URL 및 체계

toStaticHTML은 이러한 체계를 차단하고 처리하는 HTML에서 제거합니다.

  • about:
  • cdl:
  • data:
  • dvd:
  • file:
  • its:
  • javascript:
  • local:
  • mhtml:
  • mk:
  • ms-help:
  • ms-its:
  • res:
  • tv:
  • vbscript:

URI는 잘 구성(Well-Formed)되어야 합니다. toStaticHTML은 잘못된 형식의 URI를 차단하고 처리하는 HTML에서 제거합니다.

 

 

표시:
© 2016 Microsoft