Slide 26
Slide 26 text
AWS SDK for Go(v1)におけるパストラバーサ
最後にrestxml.BuildHandlerが実
行され
このハンドラの内部処理で呼び出さ
れるbuildURI()によって、実際のバ
ケット名やオブジェクトキーがテン
プレートに埋め込まれ
1
2
3
4
5
6
7
8
9
1
0
1
1
f
u
n
c
b
u
i
l
d
U
R
I
(
u
*
u
r
l
.
U
R
L
,
v
r
e
f
l
e
c
t
.
V
a
l
u
e
,
n
a
m
e
s
t
r
i
n
g
,
t
a
g
r
e
f
l
e
c
t
.
S
t
r
u
c
t
T
a
g
)
e
r
r
o
r
{
v
a
l
u
e
,
e
r
r
:
=
c
o
n
v
e
r
t
T
y
p
e
(
v
,
t
a
g
)
/
/
.
.
.
u
.
P
a
t
h
=
s
t
r
i
n
g
s
.
R
e
p
l
a
c
e
(
u
.
P
a
t
h
,
"
{
"
+
n
a
m
e
+
"
}
"
,
v
a
l
u
e
,
-
1
)
u
.
P
a
t
h
=
s
t
r
i
n
g
s
.
R
e
p
l
a
c
e
(
u
.
P
a
t
h
,
"
{
"
+
n
a
m
e
+
"
+
}
"
,
v
a
l
u
e
,
-
1
)
u
.
R
a
w
P
a
t
h
=
s
t
r
i
n
g
s
.
R
e
p
l
a
c
e
(
u
.
R
a
w
P
a
t
h
,
"
{
"
+
n
a
m
e
+
"
}
"
,
E
s
c
a
p
e
P
a
t
h
(
v
a
l
u
e
,
t
r
u
e
)
,
-
1
)
u
.
R
a
w
P
a
t
h
=
s
t
r
i
n
g
s
.
R
e
p
l
a
c
e
(
u
.
R
a
w
P
a
t
h
,
"
{
"
+
n
a
m
e
+
"
+
}
"
,
E
s
c
a
p
e
P
a
t
h
(
v
a
l
u
e
,
f
a
l
s
e
)
,
-
1
)
r
e
t
u
r
n
n
i
l
}
パラメータの展開とpath.Cleanによる正規