1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

フローが返すHTTPレスポンスのCookieにHttpOnly属性をつけてみる

Posted at

はじめに

ASTERIAではWebブラウザなどHTTPクライアントからURLにリクエストをおくることでフローを実行できるHTTP起動のフローを作成することができます。URL実行設定、URLトリガーとも呼ばれるようです。
HTTPから実行するフロー用の終了コンポーネント、HTTPEndコンポーネントを使うとHTTPレスポンスのCookieを設定できるようになっています。
オプションとして「domain」「expires」「path」属性は指定できるようですが、HttpOnly属性をつける方法について考えてみました。

環境

  • OS:Windows Server 2012 R2
  • ASTERIA WARP:1712
  • Java:1.8.0_151
  • Google Chrome:63.0.3239.132

フロー

HTTPStart -> Mapper -> HTTPEnd という単純なフローを作り、URL実行設定しておきます。

フロー
HTTPOnly01.png

URL実行設定
HTTPOnly02.png

動作確認

基本動作の確認

Cookieにはひとまず何もセットしないでブラウザーから実行してみます。

HTTPOnly03.png

Chromeのデベロッパーツールで確認してみます。

HTTPOnly04.png

ASTERIA_FLOWSERVICE というシステム固有でセットされていると思われるCookieがありました。

オプションで指定できる属性の確認

適当なCookieを1つと「domain」「expires」「path」属性をつけてみました。

HTTPOnly05.png

ブラウザーから実行してデベロッパーツールで確認してみます。

HTTPOnly06.png

domainは一緒なのでしょうがないですが、pathとexpiresにはそれっぽい値がセットできていることを確認できました。

HttpOnly属性の確認

HttpOnly属性は値なしの属性のようでCookieプロパティではうまく設定できませんでした。

HTTPOnly07.png
とkeyとvalueの組み合わせで値をセットする必要があるらしく、この状態で確認すると

HTTPOnly08.png

となり、HttpOnly属性は効いてないようです。
値をセットしない場合でも
HTTPOnly09.png
とCookieの名前としてセットされてしまうようです。

そこで追加するヘッダーで「Set-Cookie」というヘッダー名を直書きして値に;HttpOnlyと書く事でHttpOnly属性を有効にしてみました。

HTTPOnly10.png

この書き方だとHttpOnly属性を有効にできるようです。

HTTPOnly11.png

ただし、追加するヘッダーのヘッダー名は重複を許していないようなので、1つしか登録することができないようです。

HTTPOnly12.png

おわりに

ブラウザーのデベロッパーツールで確認しましたが、さらにRestコンポーネントを使ってHTTPレスポンスのMIMEを確認するフローを作って確認してみると、

HTTPOnly13.png

デベロッパーツールとMIMEの対比もできてわかりやすかったです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?