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

Susan Sarandon
Lepaskan: 2024-10-25 02:41:02
asal
452 orang telah melayarinya

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>
Salin selepas log masuk

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"
Salin selepas log masuk

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";
}
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!