web-dev-qa-db-ja.com

セッションCookie HTTPおよびセキュアフラグ-これらの設定方法

セキュリティ監査の結果を受け取りました-2つのことを除いてすべてが明確です

HTTPフラグのないセッションCookie。

セキュアフラグが設定されていないセッションCookie。

アプリケーションはphpでコーディングされており、修正する提案は次のとおりです。

  1. hTTPのみのフラグでセッションCookieを設定します
  2. セキュアフラグを使用してセッションCookieを設定する

例を見てきましたが、Linuxサーバーに実装する方法を完全には理解していません。 。iniファイルにアクセスできません。これらをhtaccessファイルに設定することはできますか?

または、どのように、どこでコードに実装しますか?

30
Jeff

.htaccessを要求し、この設定は PHP_INI_ALL なので、これを.htaccessに入れるだけです:

php_value session.cookie_httponly 1
php_value session.cookie_secure 1

セッションCookieは、その後https要求でのみ送信されることに注意してください。これは、セキュリティで保護されていないhttpページでセッションを失った場合に驚くかもしれません(ただし、コメントで指摘されているように、そもそも設定のポイントです...)。

37
eis

ヘッダーを送信する前に設定できます。コードに以下の行を追加してください。

<?php
// **PREVENTING SESSION HIJACKING**
// Prevents javascript XSS attacks aimed to steal the session ID
ini_set('session.cookie_httponly', 1);

// **PREVENTING SESSION FIXATION**
// Session ID cannot be passed through URLs
ini_set('session.use_only_cookies', 1);

// Uses a secure connection (HTTPS) if possible
ini_set('session.cookie_secure', 1);
41
Perry

これは.iniファイルへのアクセス権がないことを具体的に言っていることを知っていますが、検索結果からここにアクセスする人にとっては、.ini設定は次のようになります。

session.cookie_httponly = 1
session.cookie_secure = 1

Cookie_secureは、ほとんどのiniファイルにデフォルトですでに存在していますが、コメント化されています。したがって、その行のコメントを外して1を設定します。httponly行も既に存在しますが、コメント化されていませんが、デフォルトでは0になっています。

2
danielson317