国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Menjana dan menyimpan token anti-CSRF
Mengesahkan token pada penyerahan borang
Jangan lupa permintaan Ajax dan API
Petua Bonus: Cookies Samesite dan bentuk HTTP sahaja
Rumah pembangunan bahagian belakang tutorial php Bagaimanakah saya menghalang serangan pemalsuan permintaan lintas tapak (CSRF) dalam php?

Bagaimanakah saya menghalang serangan pemalsuan permintaan lintas tapak (CSRF) dalam php?

Jun 28, 2025 am 02:25 AM
php csrf

Untuk mengelakkan serangan CSRF di PHP, melaksanakan token anti-CSRF. 1) Menjana dan menyimpan token yang selamat menggunakan random_bytes () atau bin2hex (random_bytes (32)), simpannya dalam $ _Session, dan masukkannya dalam bentuk sebagai input tersembunyi. 2) Mengesahkan token pada penyerahan dengan tegas membandingkan token pos dengan sesi yang disimpan; menolak permintaan yang tidak sesuai dengan ralat 403. 3) Melindungi permintaan Ajax/API dengan memasukkan token dalam tajuk atau badan, sering diambil dari tag meta. 4) Gunakan htmlspecialchars () apabila mengeluarkan token untuk mencegah kebocoran XSS. 5) Meningkatkan token selepas tindakan kritikal seperti log masuk. 6) Tetapkan samesite = ketat/lax untuk cookies sesi dan elakkan mendapatkan perubahan keadaan. 7) Menegaskan semula pengguna untuk tindakan sensitif. Langkah -langkah ini memastikan perlindungan CSRF yang komprehensif di semua jenis permintaan sambil mengekalkan integriti keselamatan.

Bagaimanakah saya menghalang serangan pemalsuan permintaan lintas tapak (CSRF) dalam php?

Untuk mengelakkan serangan CSRF di PHP, anda perlu melaksanakan strategi anti-CSRF yang kukuh-terutamanya dengan menggunakan token. Idea ini mudah: setiap permintaan yang berubah-ubah (seperti penyerahan bentuk) hendaklah termasuk token yang unik dan tidak dapat diramalkan yang hanya diketahui pengguna yang sah. Tanpa token ini, pelayan tidak boleh memproses permintaan itu.

Inilah cara untuk melakukannya dengan baik dalam amalan.


Menjana dan menyimpan token anti-CSRF

Setiap kali anda memaparkan borang yang melakukan tindakan (seperti mengemukakan tetapan atau membuat pembelian), menghasilkan token yang selamat dan simpan di tempat yang selamat di sisi pelayan seperti dalam sesi.

  • Gunakan random_bytes() atau bin2hex(random_bytes(32)) untuk membuat token yang kuat.
  • Simpan dalam $_SESSION supaya anda dapat membandingkannya kemudian apabila borang diserahkan.

Contohnya:

 jika (kosong ($ _ sesi ['csrf_token'])) {
    $ _Session ['csrf_token'] = bin2hex (random_bytes (50));
}

Kemudian dalam bentuk anda:

 <input type = "hidden" name = "csrf_token" value = "<? = htmlspecialchars ($ _ session [&#39;csrf_token&#39;]?>">

Dengan cara ini, setiap penyerahan borang termasuk token bahawa penyerang tidak dapat meneka atau menghasilkan semula.


Mengesahkan token pada penyerahan borang

Apabila borang dikemukakan, periksa sama ada token dalam data pos sepadan dengan apa yang disimpan dalam sesi.

  • Sentiasa periksa kehadiran token.
  • Bandingkan dengan ketat ( === ) untuk mengelakkan isu-isu jenis.
  • Jika ia tidak sepadan, tolak permintaan dengan ralat 403 atau serupa.

Contoh Kod:

 jika (! isset ($ _ post [&#39;csrf_token&#39;]) || $ _post [&#39;csrf_token&#39;]! == $ _Session [&#39;csrf_token&#39;]) {
    http_response_code (403);
    mati (&#39;Token CSRF tidak sah.&#39;);
}

Perincian yang kecil tetapi penting: Sentiasa gunakan htmlspecialchars() apabila mengeluarkan token ke HTML untuk mengelakkan XSS daripada bocor token.

Juga, jangan lupa untuk memutar atau menjana semula token selepas tindakan kritikal seperti perubahan log masuk atau kata laluan.


Jangan lupa permintaan Ajax dan API

Jika laman web anda menggunakan JavaScript untuk menghantar borang atau membuat panggilan API, permintaan tersebut juga memerlukan perlindungan CSRF.

  • Sertakan token CSRF dalam tajuk atau badan permintaan AJAX.
  • Anda boleh menyimpan token dalam tag meta atau skrip sebaris dan membacanya dari sana semasa membuat panggilan.

Sebagai contoh, tetapkan tag meta di kepala HTML anda:

 <meta name = "csrf-token" content = "<? = htmlspecialchars ($ _ sesi [&#39;csrf_token&#39;]?>">

Kemudian di JS anda:

 Ambil (&#39;/update-profile&#39;, {
    Kaedah: &#39;pos&#39;,
    tajuk: {
        &#39;X-csrf-token&#39;: document.queryselector (&#39;meta [name = "csrf-token"]&#39;). Kandungan
    },
    Badan: UrlSearchParams Baru ({Nama: &#39;John Doe&#39;})
});

Di belakang, cari token di tajuk X-CSRF-Token dan sahkannya sama seperti bentuk biasa.

Satu perkara yang perlu diperhatikan: Jika anda membina aplikasi satu halaman (SPA) atau aplikasi mudah alih yang bercakap dengan backend PHP anda, pertimbangkan untuk menggunakan kuki tapak dan token CSRF bersama-sama untuk perlindungan yang lebih baik.


Petua Bonus: Cookies Samesite dan bentuk HTTP sahaja

Walaupun dengan token, ada langkah tambahan yang boleh anda ambil:

  • Tetapkan SameSite=Strict atau Lax pada cookie sesi anda untuk mengurangkan permintaan silang asal.
  • Pastikan borang anda hanya menerima permintaan pos di mana diperlukan-jangan membenarkan perubahan keadaan berasaskan.
  • Untuk operasi sensitif (seperti memadam akaun), pengesahan semula membantu menambah lapisan lain.

Ini bukan pengganti untuk token CSRF, tetapi mereka berfungsi dengan baik bersama mereka.


Itu pada dasarnya. Perlindungan CSRF dalam PHP beralih untuk menjana token yang baik, mengesahkannya dengan betul, dan memastikan mereka dimasukkan ke dalam semua permintaan yang berkaitan. Ia tidak terlalu kompleks, tetapi mudah merosakkan jika anda melangkau walaupun satu langkah.

Atas ialah kandungan terperinci Bagaimanakah saya menghalang serangan pemalsuan permintaan lintas tapak (CSRF) dalam php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana menggabungkan dua nilai PHP Arrays yang unik? Bagaimana menggabungkan dua nilai PHP Arrays yang unik? Jul 02, 2025 pm 05:18 PM

Untuk menggabungkan dua susunan PHP dan menyimpan nilai unik, terdapat dua kaedah utama. 1. Untuk tatasusunan indeks atau hanya deduplikasi, gunakan Array_Merge dan Array_unique Combinations: First Gabungan Array_Merge ($ array1, $ array2) dan kemudian gunakan array_unique () untuk deduplikasi mereka untuk akhirnya mendapatkan array baru yang mengandungi semua nilai unik; 2. Untuk array bersekutu dan ingin mengekalkan pasangan nilai utama dalam array pertama, gunakan pengendali: $ hasil = $ array1 $ array2, yang akan memastikan bahawa kunci dalam array pertama tidak akan ditimpa oleh array kedua. Kedua -dua kaedah ini boleh digunakan untuk senario yang berbeza, bergantung kepada sama ada nama kunci dikekalkan atau hanya fokus yang dihadapi

Bagaimana cara menggunakan fungsi keluar PHP? Bagaimana cara menggunakan fungsi keluar PHP? Jul 03, 2025 am 02:15 AM

Keluar () adalah fungsi dalam PHP yang digunakan untuk menamatkan pelaksanaan skrip dengan segera. Kegunaan umum termasuk: 1. Menamatkan skrip terlebih dahulu apabila pengecualian dikesan, seperti fail tidak wujud atau pengesahan gagal; 2. Output hasil pertengahan semasa debugging dan berhenti pelaksanaan; 3. Panggilan keluar () selepas pengalihan bersamaan dengan header () untuk mengelakkan pelaksanaan kod berikutnya; Di samping itu, keluar () boleh menerima parameter rentetan sebagai kandungan output atau integer sebagai kod status, dan aliasnya mati ().

Memohon struktur semantik dengan artikel, seksyen, dan selain dalam HTML Memohon struktur semantik dengan artikel, seksyen, dan selain dalam HTML Jul 05, 2025 am 02:03 AM

Penggunaan rasional tag semantik dalam HTML dapat meningkatkan kejelasan struktur halaman, aksesibilitas dan kesan SEO. 1. Digunakan untuk blok kandungan bebas, seperti jawatan blog atau komen, ia mesti mandiri; 2. Digunakan untuk kandungan berkaitan klasifikasi, biasanya termasuk tajuk, dan sesuai untuk modul yang berlainan halaman; 3. Digunakan untuk maklumat tambahan yang berkaitan dengan kandungan utama tetapi tidak teras, seperti cadangan sidebar atau profil pengarang. Dalam perkembangan sebenar, label harus digabungkan dan lain -lain, elakkan bersarang yang berlebihan, pastikan struktur mudah, dan sahkan rasionalitas struktur melalui alat pemaju.

Operasi yang diminta memerlukan tingkap ketinggian Operasi yang diminta memerlukan tingkap ketinggian Jul 04, 2025 am 02:58 AM

Apabila anda menghadapi "operasi ini memerlukan peningkatan keizinan", ini bermakna anda memerlukan kebenaran pentadbir untuk diteruskan. Penyelesaian termasuk: 1. Klik kanan program "Run As Administrator" atau tetapkan pintasan untuk sentiasa dijalankan sebagai pentadbir; 2. Periksa sama ada akaun semasa adalah akaun pentadbir, jika tidak, menukar atau meminta bantuan pentadbir; 3. Gunakan Kebenaran Pentadbir untuk membuka command prompt atau PowerShell untuk melaksanakan perintah yang relevan; 4. Menghapuskan sekatan dengan mendapatkan pemilikan fail atau mengubah suai pendaftaran apabila perlu, tetapi operasi tersebut perlu berhati -hati dan memahami sepenuhnya risiko. Sahkan identiti kebenaran dan cuba kaedah di atas biasanya menyelesaikan masalah.

Bagaimana untuk membuat array dalam PHP? Bagaimana untuk membuat array dalam PHP? Jul 02, 2025 pm 05:01 PM

Terdapat dua cara untuk membuat array dalam PHP: Gunakan fungsi array () atau gunakan kurungan []. 1. Menggunakan fungsi array () adalah cara tradisional, dengan keserasian yang baik. Tentukan array indeks seperti $ buah -buahan = array ("epal", "pisang", "oren"), dan array bersekutu seperti $ user = array ("name" => "John", "umur" => 25); 2. Menggunakan [] adalah cara yang lebih mudah untuk menyokong sejak Php5.4, seperti warna $

data pos mentah php php data pos mentah php php Jul 02, 2025 pm 04:51 PM

Cara untuk memproses data pos mentah dalam PHP adalah menggunakan $ rawData = file_get_contents ('php: // input'), yang sesuai untuk menerima JSON, XML, atau data format tersuai yang lain. 1.php: // input adalah aliran baca sahaja, yang hanya sah dalam permintaan pos; 2. Masalah biasa termasuk konfigurasi pelayan atau aliran input membaca middleware, yang menjadikannya mustahil untuk mendapatkan data; 3. Senario aplikasi termasuk menerima permintaan pengambilan depan, panggilan balik perkhidmatan pihak ketiga, dan membina Restfulapis; 4. Perbezaan dari $ _POST ialah $ _POST secara automatik menghidupkan data borang standard, manakala data asal sesuai untuk format bukan standard dan membolehkan parsing manual; 5. htm biasa

Bagaimana cara mengendalikan fail memuat naik dengan selamat di PHP? Bagaimana cara mengendalikan fail memuat naik dengan selamat di PHP? Jul 08, 2025 am 02:37 AM

Untuk mengendalikan muat naik fail PHP dengan selamat, anda perlu mengesahkan sumber dan jenis, mengawal nama fail dan laluan, menetapkan sekatan pelayan, dan memproses fail media dua kali. 1. Sahkan sumber muat naik untuk mengelakkan CSRF melalui token dan mengesan jenis mime sebenar melalui finfo_file menggunakan kawalan putih; 2. Namakan semula fail ke rentetan rawak dan tentukan pelanjutan untuk menyimpannya dalam direktori bukan web mengikut jenis pengesanan; 3. Konfigurasi PHP mengehadkan saiz muat naik dan direktori sementara Nginx/Apache melarang akses ke direktori muat naik; 4. Perpustakaan GD menyambung semula gambar -gambar untuk membersihkan data yang berpotensi.

Bagaimana anda lulus pembolehubah dengan nilai vs dengan rujukan dalam php? Bagaimana anda lulus pembolehubah dengan nilai vs dengan rujukan dalam php? Jul 08, 2025 am 02:42 AM

Inphp, variablesarepassedbyvalueDefault, arequFunctionsorassignmentsReceiveacopyofthedata, sementara

See all articles