WordPress短期学習プログラム
Security(セキュリティ)

PHP

PHP クッキー(Cookie)にセキュア属性(secure属性)を付与

セキュリティの専門家の方からの指摘で、

本日は、

以前組んだシステムに脆弱性対策を施しています。

 

で、

指摘された内容の一つに、

■セッション管理に使用するクッキー(Cookie)にセキュア属性(secure属性)を付けるようにしろ!!
■セッション管理に使用するクッキー(Cookie)のパスはちゃんと設定しろ!!

というものがありました。

 

まず、

secure属性に関してですが、

このsecure属性を付けてやることにより、

HTTPS通信時にのみクッキーを送信できるようになるとのことです。

 

どうしてsecure属性が必要かというと、

HTTP通信時にクッキーの情報を盗聴によりひっこ抜かれると、

そのクッキーの中に含まれている重要情報が漏洩してしまう可能性があります。

 

なので、

HTTPS通信時にのみクッキーを送信するようにして、

極力安全な通信のみを行いましょう!!

とのことです。

 

ただし、

HTTP通信とHTTPS通信が混在しているサイトの場合には、

当然HTTP通信からはクッキーを送信できなくなるので、

それにより不都合が生じる場合もあります。

その為、

サイト側の仕様を考慮して最終的に対応するかどうかを決めて!!

とのことでした。

 

今回チェックして貰ったシステムは常時SSL通信を設定しており、

HTTPでの通信は許可していないので、

当然対応しておくことにします。

 

対応方法は、

ini_set("session.cookie_secure", 1);

というコードを追記してやれば、

これで設定完了です。

 

次に、

クッキー(Cookie)のパス設定についての説明ですが、

今回指摘があったサイトのトップページURLは、

https://www.sample.com/rent/

というように本サイト(https://www.sample.com/)とは別に、

「rent」というディレクトリを設けてサイトの構築を行っています。

 

この場合には、

仮に本サイト(https://www.sample.com/)にクロスサイトスクリプティングの脆弱性が存在していた場合、

そちらから、

/rent/直下のクッキーデータも引っこ抜かれる危険性が生じるので、

きちんとクッキーのパスも指定しておくように!!

とのことでした。

 

で、

こちらも、

ini_set("session.cookie_path", "/rent/");

とini_set()で設定すれば、

Cookieの保存パスの指定は完了します。

 

まとめると、

<?php

ini_set("session.cookie_secure", 1);
ini_set("session.cookie_path", "/rent/");
session_start(); //セッション開始


?>

みたいなコードで今回指摘があった「Secure属性の追加」と「保存パスの設定」は完了です。

 

念の為にクッキーの確認も行って下さい。

以下の様になっていれば修正完了です。
PHP CookieにSecure属性を付与

 

因みに、

session_set_cookie_params()関数

を使っての設定も可能です。

使い方は、

session_set_cookie_params("クッキー有効期限", "クッキーの保存パス", "クッキーが有効なドメイン", "セキュアフラグ, "HTTP通信フラグ");

となるので、

今回のシステムであれば、

session_set_cookie_params(0, "/rent/", "sample.com", true, false);

とすればOKです。
※5番の引数「HTTP通信フラグ」を「true」にした場合、HTTP通信のみがクッキーにアクセス可能となります

 

あと、

上記のようなクッキーの設定情報を確認したい場合には、

session_get_cookie_params()関数

で確認が可能です。

弊社では、以下の方に向けて、WordPressの短期学習プログラムを
格安(15,000円~)で提供しております。

  • 個人でWordPressを使ったサイト(個人ブログやアフィリエイトサイトなど)構築をお考えの方
  • WordPressを使って副業で稼ぎたい方
  • フリーランスでWordPressを使ったお仕事をお考えの方
  • 自社でホームページの構築・運用をお考えの方
  • 企業のWEB担当者の方

内容

基本的には、初心者の方を対象にした学習プログラムです。

※ WordPress制作の上級者の方の場合、弊社の学習プログラムはあまり役に立たないと考えています。

  • ・ WordPressのインストールからセッティングの方法
  • ・ WordPressのテーマ選びについて
  • ・ WordPressのプラグイン選びと設定方法について
  • ・ サーバの準備方法
  • ・ ドメインの取得・管理の方法
  • ・ FTPの設定方法
  • など

ご用意頂くもの

  • ・ ノートPC
    ※ 弊社はWindowsを業務で利用しておりますので、できればWindowsのPCをおすすめしています。
  • WordPressでサイトの制作を考えているが、何から始めればいいのか分からない。
  • ドメインやサーバはどうやって準備すればいいの?
  • そもそもホームページの公開には何が必要なの?

などなど、

どのような内容でも構いませんので、お気軽にお問い合わせ下さい。

お客様の目的をお聞きした上で、最適の学習プランを提案致します。

ご興味のある方は、以下の内容を記載の上、一度お問い合わせ下さい。
こちらより、折り返しメールを致します。

  • ① お名前
  • ② 折り返し先のメールアドレス
  • ③ 希望の学習内容

関連記事

  1. PHP

    in_array()関数では第3引数(true)を設定する

    ある配列の中に特定の値が貼っているかをチェックする場合、in_ar…

  2. PHP

    Indirect modification of overloaded element of Cak…

    $this-&gt;data = "1";といった具合で、Ca…

  3. Security(セキュリティ)

    PHP

    PHP パスワードのクライアントへの表示について

    サイト制作を行っていると、会員制サイトを構築することも多々あると思…

  4. PHP

    PHPで切り捨て、切り上げ、四捨五入

    プログラミングをしている時に、何らからの計算処理をすると小数点以下…

  5. PHP(ピー・エイチ・ピー)

    PHP

    CodeIgniter データベースキャッシュ機能を利用

    現在、CodeIgniterを利用してシステムの開発を行っています…

  6. PHP(ピー・エイチ・ピー)

    PHP

    PHPで住所から緯度・経度を取得する

    まず、GoogleMapsAPIを使います。h…

最近の記事

  1. SEO(エスイーオー)
  2. WordPressプラグイン「Anti-spam」
  3. システムエラー
  4. PHP(ピー・エイチ・ピー)
  5. SONY 広角レンズ「SEL1018」
  6. PHP(ピー・エイチ・ピー)
  7. 俺流塩ラーメン
  8. SEO(エスイーオー)
  9. Linux(リナックス)
  10. Linux(リナックス)
PAGE TOP