web-dev-qa-db-ja.com

Cookieが暗号化されたhttpsでのみ送信され、httpでは送信されないことを確認するにはどうすればよいですか?

私はブログ投稿を読みました GitHubはSSLに移行しましたが、Firesheepableのままです サイトがhttpsのみを使用している場合でも、cookieを暗号化せずに送信できると主張しました。彼らはクッキーは「安全な旗」でマークされるべきだと書いていますが、私はその旗がどのように見えるか知りません。

Httpsのみを使用しているサイトで、Cookieが暗号化されたhttpsでのみ送信され、暗号化されていないhttpでは送信されないことを確認するにはどうすればよいですか?

45
Jonas

Cookieセキュアフラグは次のようになります。

安全;

それでおしまい。
これは、Httpヘッダーの最後に表示されます。

Set-Cookie:mycookie = somevalue; path =/securesite /; Expires = 12/12/2010;安全; httpOnly;

もちろん、それを確認するには、プロキシまたはスニファを接続するだけです(私は優れた Fiddler を使用しています)。

*ボーナス:httpOnly属性もそこに入れました。JavaScriptスペースからのCookieアクセスから保護します。 XSS経由。

48
AviD

Firebug(Firefoxの拡張機能: http://getfirebug.com/ )などのツールを使用して確認できます。 Cookieは「安全」と表示されます。

また、Firefoxを使用している場合は、[個別のCookieを削除]ウィンドウで確認できます。

開発の観点からは、「安全な」Cookieは通常のCookieと同じですが、追加のパラメーターが含まれています。例えば.

SessionId=blah; path=/; secure; HttpOnly

うまくいけば、これを簡単に追加できるサポートを備えた開発フレームワーク-ヘルプが必要な場合は、使用しているプラ​​ットフォームをお知らせください。

そこにいる間、JavaScriptでCookieを操作していない場合はHttpOnlyフラグも追加することをお勧めします。これにより、一部のXSS攻撃からのCookieがさらに保護されます。

19
KirkJ

これを達成するためにgoogle chromeのプラグインを使用することもできます Advance REST Client

出力例は次のようになります。

Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Content-Type: application/json
Content-Length: 104
X-Content-Type-Options: nosniff
Server: WEBrick/1.3.1 (Ruby/2.0.0/2015-12-16)
Date: Thu, 25 Aug 2016 07:15:57 GMT
Set-Cookie: your.cookie.name=some-hash-uuid-here; domain=your-backend-hostname.com; path=/; expires=Sat, 24 Sep 2016 07:15:57 -0000; HttpOnly; secure
Via: 1.1 vegur

'Set-Cookie'属性の値の最後にあるように、いくつかのコメントとしてWord 'secure'が表示されます以前の回答の時間だけでなく、言及することが重要な「Strict-Transport-Security」という属性があることに注意してください。

3
d1jhoni1b