目 次 1 WebAppli で 使 う HTTP ヘッダ 作 成 関 数 の 安 全 な 使 い 方 本 文 書 の 目 的 3 2 HTTP ヘッダ インジェクションの 概 要 HTTP ヘッダ インジェクションの 概 要 HTTP ヘッダ インジェクションへ
|
|
|
- れれ かたづ
- 9 years ago
- Views:
Transcription
1 Security of HTTPHeader 2007 年 10 月 30 日 Ver. 1.2
2 目 次 1 WebAppli で 使 う HTTP ヘッダ 作 成 関 数 の 安 全 な 使 い 方 本 文 書 の 目 的 3 2 HTTP ヘッダ インジェクションの 概 要 HTTP ヘッダ インジェクションの 概 要 HTTP ヘッダ インジェクションへの 対 策 6 3 HTTP ヘッダ インジェクションの 具 体 的 な 安 全 策 CGI の 場 合 Perl + CGI.pm の 場 合 Perl5.6.1/CGI.pm PlamoLinux3.0 の 場 合 Perl5.005_03/CGI.pm2.46 の 場 合 IIS + ASP の 場 合 ASP.NET の 場 合 JavaServlet の 場 合 PHP5.2.0 の 場 合 AzaraC0.3.0 の 場 合 25 4 執 筆 者 など 本 文 書 の 免 責 事 項 執 筆 者 更 新 履 歴 本 文 書 の 最 新 バージョン HTTP ヘッダ 名 29 1
3 1 WebAppli で 使 う HTTP ヘッダ 作 成 関 数 の 安 全 な 使 い 方 2
4 1.1 本 文 書 の 目 的 本 文 書 は Web アプリケーションで 利 用 されている 各 種 HTTP ヘッダ 作 成 用 関 数 の 安 全 な 使 い 方 について 検 討 する 本 文 書 で 対 象 としている 脅 威 は 主 に 以 下 である HTTP ヘッダ インジェクション (HTTP Response Splitting[ ]) HTTP ヘッダ インジェクションというより H TTP Response-Splitting 攻 撃 の 方 が 有 名 であ ろう しかしながら どの 関 数 が 改 行 コードを 許 しているのかを 調 査 している 文 献 が 見 受 けられなかっ た 一 方 で [システム 開 発 者 プログラマ]にとっては このような 情 報 が 必 要 な 情 報 であると 感 じ 本 文 書 を 作 成 した [ ] HTTP Response Splitting, Web Cache Poisoning Attacks, and Related Topics 3
5 2 HTTP ヘッダ インジェクション の 概 要 4
6 2.1 HTTP ヘッダ インジェクションの 概 要 Web で 使 用 している HTTP は テキスト 形 式 の 通 信 プロトコルであり 空 行 を 挟 み 前 段 を HTTP ヘッダ 後 段 を HTTP ボディ と 分 ける 構 造 となっている また HTTP ヘッダ は ヘッダ 情 報 を 一 行 に 一 つを 基 本 形 式 としている Web ブラウザと Web アプリケーション 間 でのクッキー 情 報 の 交 換 や Web ページのリダイレク ト 先 を 示 す URI の 情 報 交 換 などに HTTP ヘッダは 用 いられている そして ほとんどの Web アプリケーションには HTTP ヘッダを 操 作 する 関 数 が 用 意 されている Web アプリケーションプログラマが 一 般 的 に 利 用 するのは 以 下 の 3 つであると 思 われる クッキーを Web ブラウザへ 送 信 する 関 数 Web ページのリダイレクトを 命 令 する 関 数 任 意 の HTTP ヘッダを[ 追 加 上 書 ]する 関 数 これらの 関 数 に 汚 染 データ[ ]を 渡 した 場 合 汚 染 データ 中 に 改 行 コード(ヘッダ 情 報 の 区 切 りが 改 行 コードであるため)を 挿 入 することによって 任 意 の HTTP ヘッダを 挿 入 されてしまうという のが HTTP ヘッダ インジェクションである また クッキー 情 報 の 各 プロパティは ;(セミコロン) をデリミタとしているため ; を はさ んで 任 意 のプロパティを 指 定 される 危 険 性 もある 脅 威 は 任 意 の HTTP ヘッダを 挿 入 される クッキー 情 報 に 任 意 のプロパティを 挿 入 される HTTP Response Splitting などであるが 現 実 的 な 深 刻 度 はそれほど 高 くない しかし Web アプリケーションを 開 発 する[システム 開 発 者 プログラマ]の 方 々には このような それほど 深 刻 度 が 高 くないセキュリティ 問 題 といえども 放 置 せずに 適 切 なプログラミングを 行 うことを 希 望 する [ ] 汚 染 データ ここでは 利 用 者 から Web アプリケーションへ 入 力 された 安 全 な 書 式 であると 検 証 されていない データと 定 義 する 汚 染 されているかも 知 れないデータ とした 方 がより 正 確 であるような 気 が する 5
7 2.2 HTTP ヘッダ インジェクションへの 対 策 HTTP ヘッダを 操 作 する 関 数 に 汚 染 データを 与 える 場 合 改 行 コードについてサニタイズ 処 理 を 実 施 する ASP/ASP.NET や PHP では URL エンコードを 実 施 している もし 読 者 が 利 用 している Web アプリケーション 用 の 開 発 環 境 の HTTP ヘッダ 作 成 関 数 内 部 で サニタイズ 処 理 を 行 っていないのであれば ASP/ASP.NET や PHP の 方 法 を 模 倣 して Web ア プリケーションプログラマがそれらの 関 数 を 用 いる 前 に URL エンコードを 実 施 すればよいだろ う また クッキー 情 報 の 各 プロパティは ;(セミコロン) をデリミタとしている 利 用 する 関 数 内 部 でサニタイズ 処 理 していなければ Web アプリケーションプログラマ 自 身 が 事 前 に ;(セミコ ロン) を URL エンコードすればよいだろう 以 下 の 章 で 明 らかとなるが ASP/PHP と Java とでは 異 なるサニタイズ 処 理 がおこなわれてい た どちらが 正 しいのだろうか 6
8 3 HTTP ヘッダ インジェクション の 具 体 的 な 安 全 策 7
9 3.1 CGI の 場 合 CGI では HTTP ヘッダも 含 めて HTTP リクエスト 全 体 (HTTP ヘッダ+HTTP ボディ)を CGI プ ログラマが 作 成 する 必 要 がある よって HTTP ヘッダを 作 成 中 に 汚 染 データを 使 う 場 合 汚 染 データ 中 の 改 行 コードに 注 意 する 必 要 がある また クッキー 情 報 の 各 プロパティは ;(セミコロン) をデリミタとしているため クッキー 情 報 の HTTP ヘッダを 作 成 する 際 は ;(セミコロン) もサニタイズ 処 理 する 必 要 がある 3.2 Perl + CGI.pm の 場 合 Perl には 標 準 で CGI.pm というモジュールがある このモジュールにある CGI.header() 関 数 CGI.redirect() 関 数 CGI::Cookie オブジェクトなどを 使 う 場 合 も 多 いのではないだろうか CGI.pm での HTTP ヘッダ 操 作 は 以 下 の 関 数 がよく 使 われる 関 数 名 CGI.header() CGI.redirect() CGI::Cookie 操 作 内 容 HTTP ヘッダ 生 成 Web ページのリダイレクト 要 求 クッキー 情 報 の 作 成 これらの 関 数 に 汚 染 データが 配 置 されるようなテストプログラム()を 作 成 し Netcat を 使 ってど のような HTTP レスポンスが 返 るかを 観 察 した Perl5.6.1/CGI.pm PlamoLinux3.0 の 場 合 この 章 では PlamoLinux3.0(Linux2.4.19) + Perl5.6.1/CGI.pm を 実 験 環 境 として 使 用 した 結 果 である 図 ~ 図 では CGI.Cookie オブジェクトでクッキーオブジェクトを 作 り それ をそのまま 出 力 する 場 合 である 8
10 Cookie の 値 として 含 まれている 改 行 (Lf) クッキー 属 性 のデリミタである ;(セミコロン) が URL エンコード 処 理 が 行 なわれている このようなコードを Perl プログラマが 書 く 場 合 改 行 や ;(セミコロン) を 特 に 意 識 せずに 記 述 しても 安 全 であるということである #! /usr/local/bin/perl use strict; use CGI; use CGI::Cookie; my ${cgi} = new CGI; my ${str} = "test; nnewheader:value"; my ${myc} = new CGI::Cookie( -name=>'cookiename', -value=>${str} ); print "Set-Cookie: ${myc} n"; printf("content-type: text/html n n"); printf("${str} n"); printf(${cgi}->version()); printf(" n"); END 図 : Cookie をそのまま 出 力 するテストスクリプト #./cgimod-test.pl Set-Cookie: cookiename=test%3b%0anewheader%3avalue; path=/ Content-Type: text/html test; newheader:value # echo "HEAD /cgi-bin/cgimod-test.pl HTTP/1.0 n n" nc -nvv (UNKNOWN) [ ] 80 (?) open 9
11 HTTP/ OK Date: Fri, 30 Mar :27:19 GMT Server: Apache/ (Unix) mod_ssl/ OpenSSL/0.9.6f DAV/2 Set-Cookie: cookiename=test%3b%0anewheader%3avalue; path=/ Connection: close Content-Type: text/html sent 40, rcvd 226 図 : 図 の 実 行 結 果 直 接 実 行 しても Apache 経 由 でも URL エンコードが 行 なわれている 図 ~ 図 では Cookie オブジェクトを CGI.header() 関 数 経 由 で 出 力 する 場 合 で ある 図 を 見 て 分 るとおり クッキーの 値 は URL エンコードされていることが 確 認 できる このようなコードを Perl プログラマが 書 く 場 合 改 行 や ;(セミコロン) を 特 に 意 識 せずに 記 述 しても 安 全 であるということである #! /usr/local/bin/perl use strict; use CGI; use CGI::Cookie; my ${cgi} = new CGI; my ${str} = "test; nnewheader:value"; my ${myc} = new CGI::Cookie( -name=>'cookiename', -value=>${str} ); print ${cgi}->header( -cookie=>${myc} ); printf("${str} n"); printf(${cgi}->version()); printf(" n"); END 図 : Cookie を CGI.header() 関 数 経 由 で 出 力 するテストスクリプト 10
12 #./cgimod-test.pl Set-Cookie: cookiename=test%3b%0anewheader%3avalue; path=/ Date: Fri, 30 Mar :53:21 GMT Content-Type: text/html; charset=iso test; newheader:value # echo "HEAD /cgi-bin/cgimod-test.pl HTTP/1.0 n n" nc -nvv (UNKNOWN) [ ] 80 (?) open HTTP/ OK Date: Fri, 30 Mar :53:49 GMT Server: Apache/ (Unix) mod_ssl/ OpenSSL/0.9.6f DAV/2 Set-Cookie: cookiename=test%3b%0anewheader%3avalue; path=/ Connection: close Content-Type: text/html; charset=iso sent 40, rcvd 246 図 : 図 の 実 行 結 果 URL エンコードされたためヘッダインジェクションは 発 現 しない 図 ~ 図 では CGI.redirect() 関 数 を 使 ったテストスクリプトである 図 を 見 て 分 るとおり ローカルからの 実 行 時 には (ダブルクォート) で 囲 まれつつも Lf インジェクションに 成 功 しているが Apache 経 由 では Location ヘッダ 自 体 が HTTP レスポ ンスに 含 まれていないことが 分 る よって CGI.redirect() 関 数 を 使 う 限 りにおいて Lf インジェクションは 気 にする 必 要 がないと 考 えられる 11
13 #! /usr/local/bin/perl use strict; use CGI; my ${cgi} = new CGI; my ${str} = "test; nnewheader:value"; print ${cgi}->redirect(${str}); printf("${str} n"); printf(${cgi}->version()); printf(" n"); END 図 : CGI.redirect() 関 数 を 使 うテストスクリプト #./cgimod-test.pl Status: 302 Moved location="test; newheader:value" test; newheader:value # echo "HEAD /cgi-bin/cgimod-test.pl HTTP/1.0 n n" nc -nvv (UNKNOWN) [ ] 80 (?) open HTTP/ Moved Date: Fri, 30 Mar :07:09 GMT Server: Apache/ (Unix) mod_ssl/ OpenSSL/0.9.6f DAV/2 Connection: close Content-Type: text/html; charset=iso sent 40, rcvd 189 図 : 図 の 実 行 結 果 ローカル 実 行 した 時 は (ダブルクォート) で 囲 まれながらも Lf インジェクションに 成 功 しているが Apache 経 由 では HTTP レスポンスに 含 まれていない ローカルで で 囲 まれているところ 名 と 値 の 境 界 が : でなくて = になっているところが 興 味 深 い 12
14 図 ~ 図 では CGI.header() 関 数 を 使 ったテストスクリプトである 図 を 見 て 分 るとおり ローカルからの 実 行 時 には (ダブルクォート) で 囲 まれつつも Lf インジェクションに 成 功 しているが Apache 経 由 では 500 エラーとなっていることが 分 る よって CGI.header() 関 数 を 使 う 限 りにおいて Lf インジェクションは 気 にする 必 要 がないと 考 えられる #! /usr/local/bin/perl use strict; use CGI; my ${cgi} = new CGI; my ${str} = "test; nnewheader:value"; print ${cgi}->header( ); -myheader=>${str} printf("${str} n"); printf(${cgi}->version()); printf(" n"); END 図 : CGI.header() 関 数 を 使 うテストスクリプト #./cgimod-test.pl myheader="test; newheader:value" Content-Type: text/html; charset=iso test; newheader:value # echo "HEAD /cgi-bin/cgimod-test.pl HTTP/1.0 n n" nc -nvv (UNKNOWN) [ ] 80 (?) open 13
15 HTTP/ Internal Server Error Date: Fri, 30 Mar :19:21 GMT Server: Apache/ (Unix) mod_ssl/ OpenSSL/0.9.6f DAV/2 Connection: close Content-Type: text/html; charset=iso sent 40, rcvd 205 図 : 図 の 実 行 結 果 ローカル 実 行 した 時 は (ダブルクォート) で 囲 まれながらも Lf インジェクションに 成 功 しているが Apache 経 由 では HTTP レスポンスに 含 まれていない ローカルで で 囲 まれているところ 名 と 値 の 境 界 が : でなくて = になっているところが 興 味 深 い また Apache 経 由 の 時 500 エラーが 返 されている 結 論 : CGI.pm モジュールの header() 関 数 redirect() 関 数 を 介 して HTTP レスポンスを 作 る 限 りにお いて Perl プログラマは CrLf インジェクションについて 気 にかける 必 要 はない また クッキー 情 報 を CGI::Cookie オブジェクトで 操 作 するかぎりにおいて 本 項 で 指 摘 してる 改 行 ;(セミコロン) について 気 にかける 必 要 はない Perl5.005_03/CGI.pm2.46 の 場 合 この 章 では 筆 者 の ISP 環 境 (Perl5.005_03/CGI.pm2.46)を 実 験 環 境 として 使 用 した 結 果 である 3.2.1と 同 一 の 結 果 であった C: >type a.txt HEAD /~example/cgi-bin/cgimod-test.pl HTTP/1.0 Host: C: >nc 80 < a.txt HTTP/ Internal Server Error // ここは CGI.header() の 結 果 である 14
16 Date: Fri, 30 Mar :59:58 GMT Server: Apache/1.3.9 (Unix) Connection: close Content-Type: text/html // ここは CGI.redirect() の 結 果 である C: >nc 80 < a.txt HTTP/ Moved Date: Fri, 30 Mar :01:49 GMT Server: Apache/1.3.9 (Unix) Connection: close Content-Type: text/html // ここは CGI.header() 経 由 の CGI::Cookie オブジェクトの 結 果 である C: >nc 80 < a.txt HTTP/ OK Date: Fri, 30 Mar :05:43 GMT Server: Apache/1.3.9 (Unix) Set-Cookie: cookiename=test%3b%0anewheader%3avalue; path=/~example/cgi-bin/ Connection: close Content-Type: text/html // ここは CGI.header() 経 由 しないの CGI::Cookie オブジェクトの 結 果 である C: >nc 80 < a.txt HTTP/ OK Date: Fri, 30 Mar :07:10 GMT Server: Apache/1.3.9 (Unix) Set-Cookie: cookiename=test%3b%0anewheader%3avalue; path=/~example/cgi-bin/ Connection: close Content-Type: text/html 図 : ISP の 環 境 なので ローカルから 実 行 した 結 果 は 不 明 だが 章 と 同 一 の 結 果 となった 15
17 3.3 IIS + ASP の 場 合 IIS + ASP での HTTP ヘッダ 操 作 は 以 下 の 関 数 がよく 使 われる 関 数 名 Response.Redirect Response.Cookies Response.AddHeader 操 作 内 容 Web ページのリダイレクト 要 求 クッキー 情 報 の 送 信 任 意 ヘッダの 追 加 これらの 関 数 に 汚 染 データが 配 置 されるようなテストプログラム( 図 3.3-1)を 作 成 し Netcat を 使 ってどのような HTTP レスポンスが 返 るかを 観 察 した MS-WindowsServer2003 SP1( 日 本 語 版 )を 実 験 環 境 として 使 用 した <% Option Explicit Dim str str =Request.QueryString("inputData") Response.AdHeader "TestHeader",str Response.Cokies("TestCookie") =str Response.Redirectstr %> 図 : ASP のヘッダ 送 信 関 数 の 実 験 プログラム 16
18 図 : 図 3.3-1の 結 果 結 果 は 図 3.3-2のように AddHeader() 関 数 以 外 は 関 数 内 部 で 改 行 コードのサニタイズ 処 理 が 行 われていることが 確 認 された よって ASP で 上 記 の 関 数 を 使 う 場 合 AddHeader() 関 数 以 外 は HTTP ヘッダ インジェクシ ョンに 気 を 使 わずにコーディングを 行 うことができる また AddHeader() 関 数 を 使 用 する 際 には ASP プログラム 内 で 改 行 コードをサニタイズ 処 理 ( 他 の 関 数 との 関 係 も 考 えれば URL エンコードが 妥 当 だろう)することがセキュリティ 対 策 上 必 要 な 対 策 である ということである 蛇 足 : 図 3.3-2のように ASP では 改 行 コード(Cr と Lf)などが URL エンコードされている Location ヘッダには 汚 染 データそのものが 与 えられている 汚 染 データに 別 サイトの URL を 指 定 される 必 要 がない 場 合 は その 対 策 が 別 途 必 要 である クッキー 情 報 の 箇 所 では ; がサニタイズ 処 理 されている( ; が URL エンコードされ %3B になっている) よって ASP.NET とは 異 なり クッキー 情 報 の 値 をセットする 際 には と くにセキュリティ 対 策 を 考 慮 しなくてもよい ということになる 17
19 3.4 ASP.NET の 場 合 ASP.NET での HTTP ヘッダ 操 作 は 以 下 の 関 数 がよく 使 われるだろう 関 数 名 操 作 内 容 Response.RedirectLocation Web ページのリダイレクト 要 求 Response.Cookies.Add クッキー 情 報 の 送 信 Response.AddHeader 任 意 ヘッダの 追 加 Response.AppendHeader これらの 関 数 に 汚 染 データが 渡 るようなテストプログラム( 図 3.4-1)を 作 成 し Netcat を 使 ってど のような HTTP レスポンスが 返 るかを 観 察 した MS-Windows2000 SP4( 日 本 語 版 ) 上 の WebMatrix Net Framework1.1SP1( ) を 実 験 環 境 として 使 用 した // ヘッダ 追 加 用 メソッド Response.AddHeader("myAdHeader",TextBox1.Text); Response.AppendHeader("myApendHeader",TextBox1.Text); // クッキー 送 出 用 メソッド HttpCokie MyCokie =new HttpCookie("myAdCokie"); MyCookie.Value = TextBox1.Text; Response.Cookies.Add(MyCookie); // リダイレクト 用 メソッド Response.RedirectLocation =TextBox1.Text; 図 : ASP.NET のヘッダ 送 信 関 数 の 実 験 プログラム (C#) 18
20 図 : 図 3.4-1の 結 果 結 果 は 図 3.4-2のように 関 数 内 部 で 改 行 コードのサニタイズ 処 理 が 行 われていることが 確 認 さ れた よって ASP.NET で 上 記 の 関 数 を 使 う 場 合 は HTTP ヘッダ インジェクションに 気 を 使 わず にコーディングを 行 うことができる 蛇 足 : 図 3.4-2のように ASP.NET では 改 行 コード(Cr と Lf)が URL エンコードされている Location ヘッダには 汚 染 データそのものが 与 えられている 汚 染 データに 別 サイトの URL が 指 定 される 必 要 がない 場 合 は その 対 策 が 別 途 必 要 である クッキー 情 報 の 箇 所 では ; がサニタイズ 処 理 されていない よって クッキー 情 報 の 値 以 外 のプロパティ(Domain や Expires など)を 汚 染 データによってセットされる 危 険 性 がある 他 の 関 数 との 関 係 も 考 えれば ; % 3b に 置 換 する URL エンコード 処 理 を ASP.NET プログラマは 行 う 必 要 がある 19
21 3.5 JavaServlet の 場 合 JavaServlet での HTTP ヘッダ 操 作 は 以 下 の 関 数 がよく 使 われるだろう 関 数 名 操 作 内 容 response.sendredirect Web ページのリダイレクト 要 求 response.addcookie クッキー 情 報 の 送 信 response.addheader 任 意 ヘッダの 追 加 これらの 関 数 に 汚 染 データが 渡 るようなテストプログラム( 図 3.5-1)を 作 成 し Netcat を 使 ってど のような HTTP レスポンスが 返 るかを 観 察 した MS-WindowsXP SP2( 日 本 語 版 ) 上 の Tomcat JDK1.5.0_06 Eclipse3.1.2 を 実 験 環 境 とし て 使 用 した protectedvoiddoget(httpservletrequestrequest,httpservletresponseresponse)throwsserv letexception, IOException { StringmyAddStr; StringIsRedirect; request.setcharacterencoding("windows-31j"); myaddstr = request.getparameter("addstr"); IsRedirect =request.getparameter("isredirect"); // HTTP ヘッダの 追 加 response.addheader("myadheader",myaddstr); // クッキーの 追 加 CookiemyCokie= newcokie("mycookie",myaddstr); response.addcookie(mycookie); // location ヘッダの 追 加 // redirect to JSP if(isredirect.equals("1") = true){ d(request,response); getservletconfig().getservletcontext().getrequestdispatcher("/result.jsp").forwar }else{ response.sendredirect(myaddstr); } } 図 : JavaServlet のヘッダ 送 信 関 数 の 実 験 プログラム 20
22 図 : 図 3.5-1の 結 果 (パケットキャプチャを 行 うと 改 行 コードが 0x20 に 置 換 されていることが 分 かる) 結 果 は 図 3.5-2のように 関 数 内 部 で 改 行 コードのサニタイズ 処 理 が 行 われていることが 確 認 さ れた よって JavaServlet で 上 記 の 関 数 を 使 う 場 合 は HTTP ヘッダ インジェクションに 気 を 使 わ ずにコーディングを 行 うことができる 蛇 足 : 改 行 コード(Cr と Lf)がどのコードに 置 換 されるかというものは パケットキャプチャをした 結 果 半 角 スペース(0x20) に 置 換 されることを 確 認 した Location ヘッダの 左 側 の 赤 線 にあるように 自 動 で 自 サイトの URL を 先 頭 に 挿 入 するよう である この 現 象 は 汚 染 データを 使 った URL リダイレクトを 自 Web アプリケーション 内 に 限 定 できる ということである クッキー 情 報 の HTTP ヘッダでは 入 力 データを で 囲 むことが 図 3.5-2で 確 認 できる また は で エ スケープするようであるが エスケープ 文 字 はエスケープしな くてもいいようである 21
23 3.6 PHP5.2.0 の 場 合 PHP での HTTP ヘッダ 操 作 は 以 下 の 関 数 がよく 使 われるだろう 関 数 名 header( Location: << 入 力 データ>> ) setcookie setrawcookie header 操 作 内 容 Web ページのリダイレクト 要 求 クッキー 情 報 の 送 信 任 意 ヘッダの 追 加 リダイレクトには header() 関 数 を 使 って Location ヘッダを 作 成 するという 方 法 を 用 いる setrawcookie() 関 数 は URL エンコードしないという 点 で setcookie() 関 数 と 同 一 であるとマニ ュアルには 記 載 されている これらの 関 数 に 汚 染 データが 渡 るようなテストプログラム( 図 3.6-1)を 作 成 し Netcat を 使 ってど のような HTTP レスポンスが 返 るかを 観 察 した MS-WindowsServer2003 SP1( 日 本 語 版 ) 上 の PHP5.2.0 を 実 験 環 境 として 使 用 した <? $str =$_REQUEST["inputData"]; setcookie('cookiename', $str, time()+ 60); setrawcookie('rawcookiename', $str, time()+ 60); header("myheader: $str");?> 図 : PHP のヘッダ 送 信 関 数 の 実 験 プログラム 22
24 図 : 図 3.6-1の 結 果 クッキーへの 出 力 は URL エンコードされている(setcookie) setrawcookie() 関 数 ではエラーになる 図 : 図 3.6-1の 結 果 header() 関 数 に 改 行 コードを 与 えるとエラーになる 結 果 は 図 3.6-2~ 図 3.6-3のように setcookie() 関 数 では URL エンコードされ またそれ 以 外 の setrawcookie() 関 数 header() 関 数 では エラーとなることが 確 認 された よって PHP で 上 記 の 関 数 を 使 う 場 合 は HTTP ヘッダ インジェクションに 気 を 使 わずにコー ディングを 行 うことができる 23
25 蛇 足 : setrawcookie() 関 数 header() 関 数 に 改 行 コードを 与 えることでエラーとなる エラーにならないようにするには PHP プログラム 中 で 改 行 コードを 事 前 に URL エンコ ードするなど PHP プログラマが 明 示 的 に 処 理 することで 対 処 する 必 要 がある setcookie() 関 数 は 改 行 コードだけではなく クッキー 情 報 のプロパティのデリミタである ;(セミコロン) も URL エンコードされることが 確 認 できる 24
26 3.7 AzaraC0.3.0 の 場 合 AzaraC は C++ 用 の CGI テンプレートである これについても 調 査 してみた AzaraC では クラス azarac::httpresponse のメソッドとして 以 下 が 提 供 されている メソッド 名 操 作 内 容 addheader(キー 名, 値 ) 任 意 ヘッダの 追 加 setheader (キー 名, 値 ) 任 意 ヘッダの 上 書 き addcookie(クッキークラス) クッキー 情 報 の 送 信 クッキークラスとは azarac::cookie クラスのインスタンスを 指 定 する これらの 関 数 がどのような HTTP ヘッダを 送 信 するかを 以 下 で 確 認 してみた 利 用 したソフトウェアは RedHat7.3 g AzaraC である #include <iostream> #include "azarac.h" using namespaceazarac; intmain(){ if (display("./headertest.tpl")<0)cout<what(); } 図 : headertest.cpp (ロジック 部 の C++ ソース) <%@page Content-Type="text/html;" %> <% response.addheader("abc","xyz"); %> <% response.setheader("abc","lmn r nstu");%> <% response.addheader("xyz","abc r nlmn");%> <% response.addheader("test","end");%> <% Cokie new_cookie("mycokie","atai;crlf r nva=lue"); response.adcokie(new_cookie); response.adheader("zzz","last"); %> <html><body>helo,world!</body></html> 図 : headertest.tpl (デザイン 部 のテンプレート) 25
27 Set-Cokie: mycookie=atai %3BCRLF%0D%0Ava%3Dlue; Content-Type: text/html; abc: lmn stu test: end xyz: abc lmn zzz: last <html><body>helo,world!</body></html> 図 : 図 3.7-1と 図 3.7-2を g++で-lazarac オプションでコンパイルした 実 行 ファイルを 実 行 結 果 Cookie に 関 しては URL エンコードされているが setheader()/addheader()メソッドで 指 定 した 部 分 は 改 行 コードがそのままである 結 果 は 図 3.7-3のように addheader() / setheader()メソッド 関 数 共 に 関 数 内 部 で 改 行 コードの サニタイズ 処 理 が 行 われていないことが 確 認 された しかしながら Cookie に 関 しては URL エンコードが 行 なわれていることが 確 認 できる よって AzaraC の addheader()/setheader()メソッドを 使 う 場 合 アプリケーション プログラ マが 改 行 コードのサニタイズ 処 理 をしたうえで 呼 び 出 す 必 要 がある 26
28 4 執 筆 者 など 27
29 4.1 本 文 書 の 免 責 事 項 本 文 書 に 記 述 されてる 情 報 の 利 用 は 読 者 の 責 任 に 帰 するものとする 本 文 書 で 行 った 実 験 は 執 筆 者 の 実 験 環 境 で 確 認 したものである モジュールの 細 かいバージョ ンなどの 状 況 によっては 現 象 が 異 なる 可 能 性 がある 4.2 執 筆 者 4.3 更 新 履 歴 最 初 のバージョン : 2007 年 03 月 05 日 ver1.1 : 2007 年 03 月 30 日 3.2, 3.2.1, を 追 加 した ver1.2 : 2007 年 10 月 30 日 3.7 を 追 加 した 4.4 本 文 書 の 最 新 バージョン 28
30 4.5 HTTP ヘッダ 名 本 文 書 では 除 外 しているが HTTP ヘッダ 名 に 汚 染 データを 割 り 当 てる 場 合 は ヘッダ 名 とヘッ ダ 値 のデリミタが :(コロン) である そのような 場 面 では :(コロン) のサニタイズ 処 理 が 必 要 である また クッキー 情 報 では クッキー 名 とクッキーの 値 が =(イコール) で 区 切 られている クッ キー 名 に 汚 染 データが 入 るような 場 合 は =(イコール) がどのように 処 理 されるかシステム 開 発 前 に 事 前 に 観 察 しておく 必 要 がある 以 上 29
目次 1 WebAppli で使う HTTP ヘッダ作成関数の安全な使い方 本文書の目的 3 2 HTTP ヘッダ インジェクションの概要 HTTP ヘッダ インジェクションの概要 HTTP ヘッダ インジェクションへの対策 6 3 HTTP ヘッダ インジェクシ
Security of HTTPHeader 2007 年 03 月 05 日 Ver. 1.0 目次 1 WebAppli で使う HTTP ヘッダ作成関数の安全な使い方 2 1.1 本文書の目的 3 2 HTTP ヘッダ インジェクションの概要 4 2.1 HTTP ヘッダ インジェクションの概要 5 2.2 HTTP ヘッダ インジェクションへの対策 6 3 HTTP ヘッダ インジェクションの具体的な安全策
<837083938374838C836283678169313530313038816A2E6169>
沖 縄 市 北 中 城 村 キャンプ 瑞 慶 覧 土 地 の 先 行 取 得 事 業 について ロウワー プラザ 住 宅 地 区 の 土 地 の 売 却 には 申 出 届 出 が 必 要 となります 市 村 等 へ 売 却 する 場 合 控 除 が 受 けられます! 土 地 の 先 行 取 得 制 度 に 基 づ き 市 村 等 に 土 地 を 売 却 した
為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設
暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 の 一 部 を 改 正 する 法 律 暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 例 規 整 備 * 暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 の 一 部 を 改 正 する 法 律 例 規 整 備 公 布 年 月 日 番 号 平 成 24 年
Microsoft Word - 19年度(行情)答申第081号.doc
諮 問 庁 : 防 衛 大 臣 諮 問 日 : 平 成 19 年 4 月 18 日 ( 平 成 19 年 ( 行 情 ) 諮 問 第 182 号 ) 答 申 日 : 平 成 19 年 6 月 1 日 ( 平 成 19 年 度 ( 行 情 ) 答 申 第 81 号 ) 事 件 名 : 海 上 における 警 備 行 動 ( 領 水 内 潜 没 航 行 潜 水 艦 ) 等 の 経 過 概 要 及 び 所
2 役 員 の 報 酬 等 の 支 給 状 況 役 名 法 人 の 長 理 事 理 事 ( 非 常 勤 ) 平 成 25 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 16,936 10,654 4,36
独 立 行 政 法 人 駐 留 軍 等 労 働 者 労 務 管 理 機 構 の 役 職 員 の 報 酬 給 与 等 について Ⅰ 役 員 報 酬 等 について 1 役 員 報 酬 についての 基 本 方 針 に 関 する 事 項 1 平 成 25 年 度 における 役 員 報 酬 についての 業 績 反 映 のさせ 方 検 証 結 果 理 事 長 は 今 中 期 計 画 に 掲 げた 新 たな 要
(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)
ACAD-DENKI DENKI Ver.12 新 機 能 / 改 善 機 能 アルファテック 株 式 会 社 1 新 機 能 改 善 機 能 一 覧 ACAD-DENKI/EL Ver.12 新 機 能 と 改 善 機 能 新 メニュー/ 新 機 能 拡 張 プロジェクト 管 理 外 部 端 子 コネクタ 端 子 ネット 分 割 化 リアルタイム 線 番 挿 入 改 善 項 目 図 題 情 報 編
平成16年年金制度改正 ~年金の昔・今・未来を考える~
第 2 回 社 会 保 険 料 労 働 保 険 料 の 賦 課 対 象 となる 報 酬 等 の 範 囲 に 関 する 検 討 会 平 成 24 年 9 月 20 日 資 料 1 通 勤 手 当 について 1 これまでの 通 勤 に 要 する 費 用 に 関 する 考 え 方 では 通 勤 手 当 の 金 額 が 実 費 弁 償 的 に 算 定 される 場 合 でも それは 通 常 使 用 者 が 負
( 医 療 機 器 の 性 能 及 び 機 能 ) 第 3 条 医 療 機 器 は 製 造 販 売 業 者 等 の 意 図 する 性 能 を 発 揮 できなければならず 医 療 機 器 としての 機 能 を 発 揮 できるよう 設 計 製 造 及 び 包 装 されなければならない 要 求 項 目 を
様 式 3の 記 載 方 法 基 本 要 件 基 準 の 基 本 的 考 え 方 ( 別 紙 3)も 併 せて 参 照 すること チェックリストの 作 成 にあたっては 添 付 のテンプレートファイル(ワード 版 )を 用 いること 注 意 改 正 基 準 であっても 規 定 書 式 に 整 合 させるために 添 付 のテンプレートファイル(ワード 版 )を 用 いて 作 成 すること( 不 欄 適
この 章 では 電 子 入 札 システムをご 利 用 いただくための 事 前 準 備 について 説 明 します 事 前 準 備 と して ID 初 期 パスワードの 確 認 初 期 パスワード 初 期 見 積 用 暗 証 番 号 の 変 更 IC カード 登 録 またはICカード 更 新 を 行 っ
目 次... 1 1.1 ID 初 期 パスワードの 確 認... 3 1.2 初 期 パスワード 初 期 見 積 用 暗 証 番 号 の 変 更... 6 1.3 ICカード 登 録... 10 1.4 ICカード 更 新... 18 1.5 Internet Explorer の 設 定... 25 目 次 をクリックすると 当 該 ページへ 遷 移 します この 章 では 電 子 入 札 システムをご
治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン
2014 年 1 月 7 日 治 験 依 頼 者 各 位 新 潟 市 民 病 院 治 験 管 理 室 Excel 形 式 の 電 子 プロトコール 提 出 の 御 依 頼 当 院 では 効 率 的 で 正 確 な 治 験 の 実 施 のため 電 子 カルテ 内 に 専 用 の Excel 形 式 による 電 子 プロトコールを 導 入 しております つきましては 治 験 依 頼 の 際 に 下 記
XML形式の電子報告書作成に当たっての留意事項
XML 形 式 の 電 子 報 告 書 作 成 に 当 たっての 留 意 事 項 Excel テンプレート 入 力 方 式 において 社 内 システム 等 から 直 接 XML 形 式 の 電 子 報 告 書 ( 以 下 XML 送 信 ファイル という)を 作 成 する 場 合 以 下 の 点 にご 留 意 ください ( 留 意 事 項 1)ファイル 名 称 拡 張 子 XML 送 信 ファイルのファイル
預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可
ミスミグループ コーポレートガバナンス 基 本 方 針 本 基 本 方 針 は ミスミグループ( 以 下 当 社 グループ という)のコーポレートガバナン スに 関 する 基 本 的 な 考 え 方 を 定 めるものである 1. コーポレートガバナンスの 原 則 (1) 当 社 グループのコーポレートガバナンスは 当 社 グループの 持 続 的 な 成 長 と 中 長 期 的 な 企 業 価 値 の
<4D6963726F736F667420576F7264202D2095CA8E863136816A90DA91B18C9F93A289F1939A8F9181698D8288B3816A5F4150382E646F63>
接 続 検 討 回 答 書 ( 高 圧 版 ) 別 添 様 式 AP8-20160401 回 答 日 年 月 日 1. 申 込 者 等 の 概 要 申 込 者 検 討 者 2. 接 続 検 討 の 申 込 内 容 発 電 者 の 名 称 発 電 場 所 ( 住 所 ) 最 大 受 電 電 力 アクセス の 運 用 開 始 希 望 日 3. 接 続 検 討 結 果 (1) 希 望 受 電 電 力 に
CENTNET 導 入 の 手 引 き 変 更 履 歴 No. 変 更 日 変 更 番 号 変 更 枚 数 備 考 1 2011/07/19 2.0 版 発 行 - システムリプレースにより 全 面 刷 新 2 2011//07/19 2.01 版 発 行 3 誤 字 等 の 修 正 3 2014/
CENTNET 導 入 の 手 引 き ( 一 般 購 読 者 用 ) 第 2.1 版 名 古 屋 証 券 取 引 所 CENTNET 導 入 の 手 引 き 変 更 履 歴 No. 変 更 日 変 更 番 号 変 更 枚 数 備 考 1 2011/07/19 2.0 版 発 行 - システムリプレースにより 全 面 刷 新 2 2011//07/19 2.01 版 発 行 3 誤 字 等 の 修
4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10
2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e-rad の ID パ ス ワード を 入 力 し [ログイン]をクリックします 9 4 応 募 者
1. 目 次 1 目 次 7 会 員 検 索 申 込 2 ログイン 方 法 ( 初 回 ) 8 活 動 状 況 ( 申 込 申 受 お 見 合 い 管 理 ) 3 ログイン 方 法 (2 回 目 以 降 ) 9 活 動 状 況 ( 不 成 立 履 歴 削 除 ) 4 パスワードを 忘 れた 時 は
IBJシステム 会 員 様 PC 画 面 概 要 書 2015.7 1. 目 次 1 目 次 7 会 員 検 索 申 込 2 ログイン 方 法 ( 初 回 ) 8 活 動 状 況 ( 申 込 申 受 お 見 合 い 管 理 ) 3 ログイン 方 法 (2 回 目 以 降 ) 9 活 動 状 況 ( 不 成 立 履 歴 削 除 ) 4 パスワードを 忘 れた 時 は 10 連 絡 ボックス 5 ログイン
弁護士報酬規定(抜粋)
はなみずき 法 律 事 務 所 弁 護 士 報 酬 規 定 ( 抜 粋 ) 2008 年 10 月 改 訂 2014 年 4 月 * 以 下 の 弁 護 士 報 酬 は いずれも 税 込 です ただし D E L の2の 表 に 基 づき 算 出 さ れた 金 額 については 消 費 税 を 上 乗 せした 額 を 弁 護 士 報 酬 とします 目 次 A 法 律 相 談 料 B 顧 問 料 C 手
< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず(
別 紙 2 会 社 役 員 賠 償 責 任 保 険 (D&O 保 険 )の 実 務 上 の 検 討 ポイント 第 1 会 社 役 員 賠 償 責 任 保 険 (D&O 保 険 )の 概 要 会 社 役 員 賠 償 責 任 保 険 ( 以 下 D&O 保 険 ) とは 保 険 契 約 者 である 会 社 と 保 険 者 である 保 険 会 社 の 契 約 により 被 保 険 者 とされている 役 員
目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順... 6. アドレス 帳 の 操 作 手 順... 8 5. フォルダーの 操 作 手 順... 8 6. メール 発 信 者 登 録 署 名 登 録 手 順... 0 7. 基 本 的 な 設 定
Web メール 手 順 書 目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順... 6. アドレス 帳 の 操 作 手 順... 8 5. フォルダーの 操 作 手 順... 8 6. メール 発 信 者 登 録 署 名 登 録 手 順... 0 7. 基 本 的 な 設 定... 8. 参 考 情 報... 9 . WEB メールへのログイン 概
Microsoft Word - ML_ListManager_10j.doc
メーリングリスト 利 用 の 手 引 き(リスト 管 理 者 編 ) for LyrisSynaptive ListManager 10j 第 5 版 目 次... 1 1. メーリングリストとは?... 2 2. メーリングリストの 開 設... 2 2-1 管 理 者 画 面 へのログイン... 2 2-2 リスト 管 理 者 自 身 のパスワードの 変 更... 4 3. メンバーの 登 録...
の と す る (1) 防 犯 カ メ ラ を 購 入 し 設 置 ( 新 設 又 は 増 設 に 限 る ) す る こ と (2) 設 置 す る 防 犯 カ メ ラ は 新 設 又 は 既 設 の 録 画 機 と 接 続 す る こ と た だ し 録 画 機 能 付 防 犯 カ メ ラ は
小 牧 市 地 域 防 犯 カ メ ラ 等 設 置 補 助 金 交 付 要 綱 平 成 2 8 年 3 月 2 2 日 2 7 小 市 安 第 7 5 7 号 ( 通 則 ) 第 1 条 小 牧 市 地 域 防 犯 カ メ ラ 等 設 置 補 助 金 ( 以 下 補 助 金 と い う )の 交 付 に つ い て は 市 費 補 助 金 等 の 予 算 執 行 に 関 す る 規 則 ( 昭 和
第1回
やすだ 社 会 学 研 究 法 a( 2015 年 度 春 学 期 担 当 : 保 田 ) 基 礎 分 析 ( 1): 一 変 量 / 二 変 量 の 分 析 SPSSの 基 礎 テ キ ス ト pp.1-29 pp.255-257 デ ー タ の 入 力 [ デ ー タ ビ ュ ー ] で Excelの よ う に 直 接 入 力 で き る [ 変 数 ビ ュ ー ] で 変 数 の 情 報 を
HDC-EDI BaseのAny変換における閏年の取り扱いに関する重要なお知らせ
お 客 様 各 位 2016 年 2 月 16 日 ( 改 訂 日 :2016 年 2 月 25 日 ) 改 訂 履 歴 は 最 終 ページに 記 載 株 式 会 社 セゾン 情 報 システムズ HULFT 事 業 部 HDC-EDI Base の Any 変 換 における 閏 年 の 取 り 扱 いに 関 する 重 要 なお 知 らせ HDC-EDI Base Ver.3.6.0 以 降 に 含
01_07_01 データのインポート_エクスポート_1
データのインポート/エクスポートについて 概 要 スタッフエクスプレスでは 他 のソフトウェアで 作 成 されたスタッフデータ 得 意 先 データなどを 取 り 込 む(インポートする)ことができます また スタッフエクスプレスに 登 録 済 みのデータを Excel 形 式 CSV 形 式 で 出 力 (エクスポート)す ることができます 注 意 インポートできるデータは 次 の 条 件 を 満
<4D6963726F736F667420576F7264202D208DE3905F8D8291AC8B5A8CA48A948EAE89EF8ED0208BC696B18BA492CA8E64976C8F91816995BD90AC3237944E378C8E89FC92F994C5816A>
第 1 編 共 通 業 務 共 通 仕 様 書 平 成 27 年 7 月 第 1 章 一 般 1.1 目 的 業 務 共 通 仕 様 書 ( 以 下 技 研 仕 様 書 という )は 阪 神 高 速 技 研 株 式 会 社 ( 以 下 会 社 という )が 発 注 する 調 査 検 討 資 料 作 成 設 計 補 助 測 量 作 業 その 他 こ れらに 類 する 業 務 に 係 る 業 務 請 負
ProWebRabbitインストールガイド
ProWebRabbit インストールガイド このインストールガイドでは ProWebRabbit の 標 準 的 なインストール 方 法 について 説 明 します システム 構 築 方 法 の 詳 細 な 説 明 などについては 取 扱 説 明 書 を 参 照 してください ProWebRabbit の 以 前 のバージョンからバージョンアップを 行 う 場 合 には インストール 実 施 前 にご
朝日ビジネスWEB ご利用までの流れ
2. 利 用 者 の 準 備 作 業 2-1 管 理 者 からの 利 用 登 録 完 了 後 の 通 知 項 目 を 受 取 る 利 用 者 は 管 理 者 から 以 下 の 通 知 項 目 を 受 取 ります 利 用 者 は 電 子 証 明 書 の 取 得 と 開 通 確 認 を 行 うことにより 各 種 取 引 が 利 用 できるようになります 管 理 者 から 利 用 者 に 通 知 される
エラー 時 のリダイレクトと 同 じテクニックを 用 いて ロードマスターは URL 内 のプロトコ ルを 書 き 換 えることを 許 しています これは HTTP より HTTPS へ のプロトコル 変 換 を 強 制 させるために 役 立 つオプションです 例 えば クライアントが 貴 社 のウ
11 Module 11 リダイレクト 操 作 11.1 不 可 用 (Not Available )リダイレクト 操 作 レッスン 目 標 : この 実 習 を 通 して トラフィックを 他 の URL へリダイレクトしたい 場 合 ロードマスター がリダイレクトをどのようにハンドルするかを 学 びます そして HTTP のトラフィック を 強 制 的 に HTTPS へリダイレクトさせる 方 法
2 出 願 資 格 審 査 前 記 1の 出 願 資 格 (5) 又 は(6) により 出 願 を 希 望 する 者 には, 出 願 に 先 立 ち 出 願 資 格 審 査 を 行 いますので, 次 の 書 類 を 以 下 の 期 間 に 岡 山 大 学 大 学 院 自 然 科 学 研 究 科 等
Ⅱ 入 学 者 選 抜 試 験 学 生 募 集 要 項 ( 自 然 科 学 研 究 科 環 境 学 研 究 科 共 通 ) ( 入 学 時 期 : 平 成 18 年 10 月 又 は 平 成 19 年 4 月 ) 1 出 願 資 格 次 の 各 号 のいずれかに 該 当 する 者 です (1) 修 士 の 学 位 若 しくは 専 門 職 学 位 を 有 する 者 又 は 平 成 19 年 3 月 (
スライド 1
セキュリティ 安 心 ブラウザ Android 版 WEBフィルタリングソフト ONLY タブレット フィルタリングサービス 簡 単 マニュアル ONLYタフ レットフィルタリンク (ファイナル スマホ セキュリティ)のインストール ONLYタフ レットフィルタリンク (ファイナル スマホ セキュリティ)の 初 期 設 定 ONLYタフ レットフィルタリンク (ファイナル スマホ セキュリティ)の
