Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menetapkan atribut \"SameSite\" untuk kuki dalam versi PHP sebelum 7.3?

Bagaimanakah saya boleh menetapkan atribut \"SameSite\" untuk kuki dalam versi PHP sebelum 7.3?

Susan Sarandon
Susan Sarandonasal
2024-10-25 02:41:02453semak imbas

How can I set the

Cara Menggunakan PHP "SameSite=Strict"

Sebagai tindak balas kepada perubahan terbaru yang digariskan dalam "RFC 6265," yang memperkenalkan "Same Atribut tapak" untuk mengawal akses kuki, minat yang semakin meningkat untuk menyokong atribut ini dalam PHP.

PHP >= v7.3

Untuk PHP versi 7.3 dan di atas, keupayaan untuk menetapkan atribut "Same Site" telah digabungkan melalui tatasusunan $options dalam fungsi setcookie(). Contoh berikut menunjukkan cara untuk menetapkan nilai "Tapak Sama" kepada "Tiada":

<code class="php">setcookie($name, $value, [
    'expires' => time() + 86400,
    'path' => '/',
    'domain' => 'domain.example',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'None',
]);</code>

PHP < v7.3

Untuk versi PHP sebelum 7.3, penyelesaian alternatif boleh digunakan:

1. Konfigurasi Apache:

Dengan menambah baris berikut pada konfigurasi Apache anda, anda boleh menetapkan nilai "Tapak Sama" kepada "Lax" untuk semua kuki:

Header always edit Set-Cookie (.*) "; SameSite=Lax"

2. Konfigurasi Nginx:

Pendekatan serupa tersedia untuk Nginx, di mana anda boleh menggunakan konfigurasi berikut untuk menetapkan "Tapak Sama" kepada "Ketat" untuk semua kuki:

location / {
    # your usual config ...
    # hack, set all cookies to secure, httponly and samesite (strict or lax)
    proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
}

3. Kaedah Pengepala:

Memandangkan kuki pada asasnya adalah pengepala dalam permintaan HTTP, anda boleh menetapkannya menggunakan kaedah pengepala():

<code class="php">header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");</code>

4. setcookie() Eksploitasi Pepijat:

Terdapat pepijat yang diketahui dalam kaedah setcookie() yang membenarkan untuk menetapkan nilai "Tapak Sama" kepada "Ketat" dalam versi PHP sebelum 7.3:

<code class="php">setcookie('cookie-name', '1', 0, '/; samesite=strict');</code>

Nota: Pepijat ini telah dibetulkan dalam PHP 7.3.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menetapkan atribut \"SameSite\" untuk kuki dalam versi PHP sebelum 7.3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn