PHPのCookieをGDPRとプライバシーポリシーに対応させる方法!初心者向けにやさしく解説
生徒
「先生、PHPでCookieを使うときって、ヨーロッパの法律にも関係あるんですか?」
先生
「はい、ヨーロッパではGDPRという個人情報保護の法律があるので、PHPでCookieを使う場合にも注意が必要なんです。」
生徒
「えっ、法律?プログラミング初心者でも関係あるんですか?」
先生
「もちろん関係あります。でも安心してください。今日はPHPでCookieを使うときにGDPRやプライバシーポリシーにどう対応すればいいか、やさしく解説しますね。」
1. GDPRとは?初心者にもわかる意味と目的
GDPR(General Data Protection Regulation)は、ヨーロッパのEUで定められた個人情報保護の法律です。日本語では「一般データ保護規則」と呼ばれます。
このGDPRは、EUに住んでいる人のデータを扱うすべてのWebサイトやサービスに対して適用されます。たとえ日本から運営していても、アクセスする人がEU圏内であれば関係します。
つまり、PHPで作ったWebサイトでも、Cookieを使って個人情報を保存するならGDPRに対応しないといけません。
2. Cookieとプライバシーの関係とは?
Cookie(クッキー)とは、Webサイトがユーザーのブラウザに情報を保存する仕組みのことです。ログイン情報やアクセス状況、選んだ商品などが保存されます。
この中には「個人情報」に関わるものもあります。たとえば、次のような内容です:
- 名前やメールアドレス
- ユーザーIDやセッションID
- 位置情報やIPアドレス
こうした情報をCookieに保存すると、ユーザーのプライバシーに関わるため、事前に説明して同意を得る必要があります。
3. PHPでCookieを使う前に表示する「同意バナー」とは?
GDPRでは、個人情報を保存する前に「Cookieを使ってもいいですか?」という確認の表示(バナー)をユーザーに見せなければなりません。
これを「Cookie同意バナー」と呼びます。
バナーが表示されたら、ユーザーが「同意する」ボタンをクリックした場合にだけ、PHPでCookieを保存します。
4. Cookie同意バナーのHTMLとJavaScript例
まずは、シンプルなCookieバナーのHTMLを作成しましょう。以下は表示部分の例です。
<div id="cookie-banner" class="fixed-bottom bg-light p-3 border-top">
このサイトではCookieを使用しています。<a href="/privacy.html">プライバシーポリシー</a>
<button class="btn btn-primary ms-2" onclick="acceptCookie()">同意する</button>
</div>
<script>
function acceptCookie() {
document.cookie = "cookie_consent=1; path=/";
document.getElementById("cookie-banner").style.display = "none";
}
window.onload = function() {
if (document.cookie.indexOf("cookie_consent=1") !== -1) {
document.getElementById("cookie-banner").style.display = "none";
}
}
</script>
このコードでは、ユーザーが「同意する」をクリックしたときにcookie_consentというCookieが保存される仕組みです。
5. PHPでCookieを保存する前に同意をチェック
次に、PHPでCookieを使う前に、同意を得たか確認するコードを見てみましょう。
if (isset($_COOKIE['cookie_consent']) && $_COOKIE['cookie_consent'] === '1') {
setcookie("user_id", "123", time() + 3600);
}
このコードは、ユーザーが同意したあとでないとCookieを保存しないようになっています。
6. プライバシーポリシーには何を書くべき?
GDPR対応では、Cookieの使い方を詳しく書いた「プライバシーポリシー(個人情報保護方針)」ページも必要です。
最低限、以下の内容を記載しましょう:
- どんな種類のCookieを使っているか
- Cookieでどんなデータを保存しているか
- 保存期間はどれくらいか
- 第三者と共有するかどうか
- ユーザーがCookieを拒否・削除する方法
これらは、HTMLでprivacy.htmlというページを用意し、バナーからリンクを貼るのが一般的です。
7. 初心者でもわかるPHPのGDPR対応チェックリスト
最後に、PHPでCookieを使うときのGDPR対応ポイントをチェックリスト形式でまとめます。
- Cookieを使う前に同意バナーを表示しているか
- 同意なしではCookieを保存していないか
- Cookieの使い方を明記したプライバシーポリシーがあるか
- セキュア属性やhttponlyを設定してセキュリティを強化しているか
- EUからアクセスされる可能性があるなら必ず対応しておく
これらを守ることで、法律にもユーザーにも安心して使ってもらえるWebサイトになります。