Rumah hujung hadapan web html tutorial CSRF是什么?CSRF的危害以及防御方法

CSRF是什么?CSRF的危害以及防御方法

Sep 19, 2018 pm 03:25 PM
csrf

本篇文章给大家带来的内容是关于CSRF是什么?CSRF的危害以及防御方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

什么是 CSRF

在了解 CSRF 之前我们需要科普两个前提。首先是登录权限验证的方式有很多种,目前绝大多数网站采用的还是 session 会话任务的方式。session 机制简单的来说就是服务端使用一个键值对记录登录信息,同时在 cookie 中将 session id(即刚才说的键)存储到 cookie 中。另外我们又知道浏览器中 HTTP(s) 请求是会自动帮我们把 cookie 带上传给服务端的。这样在每次请求的时候通过 cookie 获取 session id,然后通过它在服务端获取登录信息即可完成用户权限的校验。

本来这也是个不错的功能。但是由于 cookie 实在是太开放了,如果一个用户在 A 网站登录了,如果用户在 B 网站访问的时候发送了一个 A 网站的请求,那么这个请求其实是带有这个用户在 A 网站的登录信息的。如果这时候 B 站的 A 网站请求是用户不知道的,那就是非常严重的危害了。以上的过程就是跨站请求攻击,即 Cross-Site Request Forgery,即 CSRF。

CSRF 的危害

简单总结 CSRF 漏洞就是利用网站权限校验方面的漏洞在用户不知觉的情况下发送请求,达到“伪装”用户的目的。攻击者利用 CSRF 实现的攻击主要有以下几种:

攻击者能够欺骗受害用户完成该受害者所允许的任一状态改变的操作,比如:更新账号细节,完成购物,注销甚至登录等操作

获取用户的隐私数据

配合其他漏洞攻击

CSRF 蠕虫

其中 CSRF 蠕虫如其名所指就是产生蠕虫效果,会将 CSRF 攻击一传十,十传百。如:某社区私信好友的接口和获取好友列表的接口都存在CSRF漏洞,攻击者就可以将其组合成一个CSRF蠕虫——当一个用户访问恶意页面后通过CSRF获取其好友列表信息,然后再利用私信好友的CSRF漏洞给其每个好友发送一条指向恶意页面的信息,只要有人查看这个信息里的链接,CSRF蠕虫就会不断传播下去,其可能造成的危害和影响非常巨大!

防御方法

从上文的描述中我们可以知道 CSRF 有两个特点:利用 cookie 自动携带的特性以及跨站攻击。那么针对这两个特性可以使用如下解决方法。

检查 Referer 字段

大家都知道 HTTP 头中有一个 Referer 字段,这个字段用以标明请求来源于哪个地址。通过在网站中校验请求的该字段,我们能知道请求是否是从本站发出的。我们可以拒绝一切非本站发出的请求,这样避免了 CSRF 的跨站特性。

const { parse } = require('url');module.exports = class extends think.Logic {
  indexAction() {
    const referrer = this.ctx.referrer();
    const {host: referrerHost} = parse(referrer);
    if(referrerHost !== 'xxx') {
        return this.fail('REFERRER_ERROR');
    }
  }}
Salin selepas log masuk

同样以 ThinkJS 为例,只要在 Logic 中简单判断下即可。这种方式利用了客户端无法构造 Referrer 的特性,虽然简单,不过当网站域名有多个,或者经常变换域名的时候会变得非常的麻烦,同时也具有一定的局限性。

Token 验证

由于 CSRF 是利用了浏览器自动传递 cookie 的特性,另外一个防御思路就是校验信息不通过 cookie 传递,在其他参数中增加随机加密串进行校验。这里又有两种办法:

随机字符串:为每一个提交增加一个随机串参数,该参数服务端通过页面下发,每次请求的时候补充到提交参数中,服务端通过校验该参数是否一致来判断是否是用户请求。由于 CSRF 攻击中攻击者是无从事先得知该随机字符串的值,所以服务端就可以通过校验该值拒绝可以请求。

JWT:实际上除了 session 登录之外,现在越来越流行 JWT token 登录校验。该方式是在前端记录登录 token,每次请求的时候通过在 Header 中添加认证头的方式来实现登录校验过程。由于 CSRF 攻击中攻击者无法知道该 token 值,通过这种方式也是可以防止 CSRF 攻击的。当然 token 登录方式除了 JWT 之外还有 OAuth 等很多种方式。

Atas ialah kandungan terperinci CSRF是什么?CSRF的危害以及防御方法. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Perlindungan skrip silang tapak (XSS) dan pemalsuan permintaan silang tapak (CSRF) dalam Laravel Perlindungan skrip silang tapak (XSS) dan pemalsuan permintaan silang tapak (CSRF) dalam Laravel Aug 13, 2023 pm 04:43 PM

Perlindungan penskripan silang tapak (XSS) dan pemalsuan permintaan merentas tapak (CSRF) dalam Laravel Dengan perkembangan Internet, isu keselamatan rangkaian menjadi semakin serius. Antaranya, Cross-SiteScripting (XSS) dan Cross-SiteRequestForgery (CSRF) adalah salah satu kaedah serangan yang paling biasa. Laravel, sebagai rangka kerja pembangunan PHP yang popular, menyediakan pengguna dengan pelbagai mekanisme keselamatan

Analisis perbandingan pemalsuan permintaan silang domain Sesi PHP dan rentas tapak Analisis perbandingan pemalsuan permintaan silang domain Sesi PHP dan rentas tapak Oct 12, 2023 pm 12:58 PM

Analisis perbandingan pemalsuan permintaan silang domain dan tapak silang PHPSession Dengan perkembangan Internet, keselamatan aplikasi web telah menjadi sangat penting. PHPSession ialah mekanisme pengesahan dan penjejakan sesi yang biasa digunakan semasa membangunkan aplikasi web, manakala permintaan silang asal dan pemalsuan permintaan merentas tapak (CSRF) ialah dua ancaman keselamatan utama. Untuk melindungi keselamatan data dan aplikasi pengguna, pembangun perlu memahami perbezaan antara domain silang Sesi dan CSRF, dan menerima pakai

Panduan Keselamatan Rangka Kerja PHP: Bagaimana Mencegah Serangan CSRF? Panduan Keselamatan Rangka Kerja PHP: Bagaimana Mencegah Serangan CSRF? Jun 01, 2024 am 10:36 AM

Panduan Keselamatan Rangka Kerja PHP: Bagaimana untuk Mencegah Serangan CSRF? Serangan pemalsuan permintaan silang tapak (CSRF) ialah sejenis serangan rangkaian di mana penyerang memperdaya pengguna untuk melakukan tindakan yang tidak diingini dalam aplikasi web mangsa. Bagaimanakah CSRF berfungsi? Serangan CSRF mengeksploitasi fakta bahawa kebanyakan aplikasi web membenarkan permintaan dihantar antara halaman yang berbeza dalam nama domain yang sama. Penyerang mencipta halaman berniat jahat yang menghantar permintaan kepada aplikasi mangsa, mencetuskan tindakan yang tidak dibenarkan. Bagaimana untuk mengelakkan serangan CSRF? 1. Gunakan token anti-CSRF: Berikan setiap pengguna token unik, simpannya dalam sesi atau kuki. Sertakan medan tersembunyi dalam permohonan anda untuk menyerahkan token itu

Serangan CSRF dalam PHP Serangan CSRF dalam PHP May 25, 2023 pm 08:31 PM

Dengan pembangunan Internet yang berterusan, semakin banyak aplikasi web Namun, isu keselamatan juga semakin menarik perhatian. Serangan CSRF (CrossSiteRequestForgery, pemalsuan permintaan silang tapak) ialah masalah keselamatan rangkaian biasa. Apakah serangan CSRF? Serangan CSRF yang dipanggil bermakna penyerang mencuri identiti pengguna dan melakukan operasi haram atas nama pengguna. Dalam istilah orang awam, ini bermakna penyerang menggunakan status log masuk pengguna untuk melakukan beberapa operasi haram tanpa pengetahuan pengguna.

Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apr 07, 2025 am 12:02 AM

Dalam PHP, anda boleh mencegah serangan CSRF dengan menggunakan token yang tidak dapat diramalkan. Kaedah khusus termasuk: 1. Menjana dan membenamkan token CSRF dalam bentuk; 2. Sahkan kesahihan token semasa memproses permintaan.

Apakah proses dan prinsip pertahanan SpringBoot terhadap serangan CSRF? Apakah proses dan prinsip pertahanan SpringBoot terhadap serangan CSRF? May 12, 2023 pm 09:13 PM

Prinsip CSRF Jika kita ingin mempertahankan daripada serangan CSRF, kita perlu terlebih dahulu memahami apa itu serangan CSRF Marilah kita menyusun proses serangan CSRF melalui ilustrasi berikut: Sebenarnya, proses ini sangat mudah: 1. Anggapkan bahawa pengguna. membuka laman web Perbankan Dalam Talian China Merchants dan log masuk. 2. Selepas log masuk berjaya, perbankan dalam talian akan mengembalikan kuki ke bahagian hadapan, dan penyemak imbas akan menyimpan kuki. 3. Pengguna membuka tab baharu dalam penyemak imbas tanpa log keluar dari perbankan dalam talian, dan kemudian melawat tapak web berbahaya. 4. Terdapat hiperpautan di laman web berbahaya ini, dan alamat hiperpautan itu menghala ke Perbankan Dalam Talian Pedagang China. 4. Pengguna mengklik pautan ini Memandangkan hiperpautan ini secara automatik akan membawa kuki yang disimpan dalam penyemak imbas.

PHP dan Vue.js membangunkan aplikasi yang mempertahankan daripada serangan pemalsuan permintaan merentas tapak (CSRF). PHP dan Vue.js membangunkan aplikasi yang mempertahankan daripada serangan pemalsuan permintaan merentas tapak (CSRF). Jul 05, 2023 pm 07:21 PM

PHP dan Vue.js membangunkan aplikasi yang melindungi daripada serangan pemalsuan permintaan merentas tapak (CSRF) Dengan pembangunan aplikasi Internet, serangan pemalsuan permintaan merentas tapak (CSRF) telah menjadi ancaman keselamatan yang biasa. Ia menggunakan identiti log masuk pengguna untuk membuat permintaan palsu untuk melakukan operasi berniat jahat, seperti menukar kata laluan pengguna, menerbitkan spam, dsb. Untuk melindungi keselamatan pengguna kami dan integriti data kami, kami perlu melaksanakan CSRF yang berkesan dalam aplikasi kami

Analisis teknologi pertahanan permintaan silang tapak (CSRF) dalam PHP Analisis teknologi pertahanan permintaan silang tapak (CSRF) dalam PHP Jun 29, 2023 am 09:20 AM

Analisis Teknologi Pertahanan Pemalsuan Permintaan Merentas Tapak (CSRF) dalam PHP Dengan perkembangan pesat Internet, isu keselamatan rangkaian telah menjadi semakin ketara. Serangan pemalsuan permintaan merentas tapak (CSRF) ialah ancaman keselamatan rangkaian biasa Ia menggunakan maklumat identiti log masuk pengguna untuk menghantar operasi berniat jahat melalui permintaan yang menyamar, menyebabkan pengguna melakukan operasi berniat jahat tanpa pengetahuan mereka. Dalam pembangunan PHP, cara mempertahankan diri daripada serangan CSRF telah menjadi isu penting. Prinsip serangan CSRF Sebelum memahami cara untuk bertahan terhadap serangan CSRF, fahami dahulu CS

See all articles