웹 프론트엔드 HTML 튜토리얼 CSRF란 무엇입니까? CSRF의 위험성과 이를 방어하는 방법

CSRF란 무엇입니까? CSRF의 위험성과 이를 방어하는 방법

Sep 19, 2018 pm 03:25 PM
csrf

이 글의 내용은 CSRF란 무엇일까요? CSRF의 위험과 방어 방법은 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

CSRF란 무엇인가

CSRF를 이해하기 전에 두 가지 전제 조건을 대중화해야 합니다. 우선, 현재 대부분의 웹사이트에서 로그인 권한을 확인하는 방법에는 여러 가지가 있습니다. 세션 세션 작업 모드. 간단히 말하면, 세션 메커니즘은 서버가 키-값 쌍을 사용하여 로그인 정보를 기록하는 동시에 세션이 쿠키에 저장된다는 것입니다. ID(방금 언급한 키)는 쿠키에 저장됩니다. 또한 브라우저의 HTTP(s) 요청이 자동으로 쿠키를 변경한다는 것도 알고 있습니다. 서버에 전달되었습니다. 이러한 방식으로 각 요청 시 쿠키를 통해 세션 ID를 얻은 다음 이를 통해 서버에서 로그인 정보를 얻어 사용자 권한 확인을 완료합니다.

원래 이 기능도 좋은 기능이었습니다. 하지만 이로 인해 쿠키는 실제로 열려있습니다. 사용자가 웹사이트 A에 로그인하고, 웹사이트 B를 방문할 때 A 쿠키를 보내면, 웹사이트 요청, 이 요청은 실제로 웹사이트 A에 대한 사용자의 로그인 정보를 전달합니다. 만약 A가 이때 B역에 있다면 웹사이트 요청이 사용자에게 알려지지 않은 경우 이는 매우 심각한 피해입니다. 위의 과정은 Cross-Site Request Forgery, 즉 Cross-Site Request Forgery 공격이다. CSRF.

CSRF의 위험

CSRF 취약점에 대한 간단한 요약은 웹사이트 권한 확인의 취약점을 사용하여 사용자가 알지 못하는 사이에 요청을 보내는 것입니다. 사용자를 "위장"하려는 목적을 달성합니다. 공격자가 CSRF를 사용하여 수행하는 주요 공격 유형은 다음과 같습니다.

공격자는 피해자 사용자를 속여 계정 세부 정보 업데이트, 쇼핑 완료, 피해자가 허용한 모든 상태 변경 작업을 완료하도록 할 수 있습니다. 로그아웃 또는 로그인 및 기타 작업

사용자의 개인 데이터 가져오기

다른 취약점 공격에 협조

CSRF 웜# 🎜🎜##🎜 🎜#그중에 CSRF 웜은 이름에서 알 수 있듯이 웜 효과를 생성하며 공격은 하나에서 열로, 열에서 백으로 퍼집니다. 예를 들어, 커뮤니티에서 친구에게 비공개로 메시지를 보내기 위한 인터페이스와 친구 목록을 얻기 위한 인터페이스에는 모두 CSRF 취약점이 있습니다. 공격자는 이를 CSRF 웜으로 결합할 수 있습니다. 사용자가 악성 페이지를 방문하면 다음을 통해 친구 목록 정보를 얻을 수 있습니다. 그런 다음 CSRF를 사용합니다. 개인 메시징 친구의 CSRF 취약점은 누군가가 이 메시지의 링크를 보는 한 각 친구에게 악성 페이지를 가리키는 메시지를 보냅니다. CSRF 웜은 계속해서 확산되며 이로 인해 피해와 영향이 발생할 수 있습니다. 원인은 엄청납니다!

방어 방법

위의 설명을 통해 CSRF에는 쿠키의 자동 전달 기능과 크로스 사이트 공격이라는 두 가지 특성이 있음을 알 수 있습니다. 그러면 이 두 가지 기능에 대해 다음 솔루션을 사용할 수 있습니다.

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');
    }
  }}
로그인 후 복사

ThinkJS를 예로 들어 간단하게 로직으로 판단해보세요. 이 방법은 클라이언트가 리퍼러를 구성할 수 없다는 점을 이용합니다. 간단하지만 웹 사이트에 여러 도메인 이름이 있거나 도메인 이름이 자주 변경되는 경우 매우 번거롭고 특정 제한 사항이 있습니다.

토큰 확인

CSRF는 브라우저의 쿠키 자동 전달 기능을 활용하므로 또 다른 방어 아이디어는 쿠키를 통해 확인 정보를 전달하지 않고 다른 매개변수에 임의성을 추가하는 것입니다. 암호화된 문자열이 확인됩니다. 여기에는 두 가지 방법이 더 있습니다.

Random 문자열: 각 제출에 임의의 문자열 매개변수를 추가합니다. 매개변수는 요청될 때마다 서버에서 페이지를 통해 전송됩니다. . 서비스 측에서는 매개변수가 일치하는지 확인하여 사용자 요청인지 여부를 판단합니다. CSRF 공격에서는 공격자가 임의의 문자열 값을 미리 알 수 없기 때문에 서버는 값을 확인하여 요청을 거부할 수 있습니다.

JWT: 사실 빼고는 세션 로그인 외에도 JWT 토큰 로그인 확인이 점점 더 대중화되고 있습니다. 이 방법은 프런트 엔드에 로그인 토큰을 기록하고 요청이 이루어질 때마다 헤더에 전달하는 것입니다. 로그인 확인 프로세스는 인증 헤더를 추가하여 구현됩니다. CSRF 공격에서는 공격자가 토큰 값을 알 수 없기 때문에 이 방법으로도 CSRF 공격을 방지할 수 있습니다. 틀림없이 JWT 외에도 토큰 로그인 방법에는 OAuth 및 기타 여러 방법이 포함됩니다.

위 내용은 CSRF란 무엇입니까? CSRF의 위험성과 이를 방어하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel의 XSS(교차 사이트 스크립팅) 및 CSRF(교차 사이트 요청 위조) 보호 Laravel의 XSS(교차 사이트 스크립팅) 및 CSRF(교차 사이트 요청 위조) 보호 Aug 13, 2023 pm 04:43 PM

Laravel의 XSS(교차 사이트 스크립팅) 및 CSRF(교차 사이트 요청 위조) 보호 인터넷이 발전하면서 네트워크 보안 문제는 점점 더 심각해졌습니다. 그 중 XSS(Cross-SiteScripting)와 CSRF(Cross-SiteRequestForgery)는 가장 일반적인 공격 방법 중 하나입니다. 인기 있는 PHP 개발 프레임워크인 Laravel은 사용자에게 다양한 보안 메커니즘을 제공합니다.

PHP 세션 크로스 도메인 및 크로스 사이트 요청 위조 비교 분석 PHP 세션 크로스 도메인 및 크로스 사이트 요청 위조 비교 분석 Oct 12, 2023 pm 12:58 PM

PHPSession 크로스 도메인 및 크로스 사이트 요청 위조에 대한 비교 분석 인터넷이 발전하면서 웹 애플리케이션의 보안이 특히 중요해졌습니다. PHPSession은 웹 애플리케이션을 개발할 때 일반적으로 사용되는 인증 및 세션 추적 메커니즘인 반면, 크로스 도메인 요청 및 크로스 사이트 요청 위조(CSRF)는 두 가지 주요 보안 위협입니다. 사용자 데이터와 애플리케이션의 보안을 보호하기 위해 개발자는 세션 크로스 도메인과 CSRF의 차이점을 이해하고 채택해야 합니다.

PHP 프레임워크 보안 가이드: CSRF 공격을 방지하는 방법은 무엇입니까? PHP 프레임워크 보안 가이드: CSRF 공격을 방지하는 방법은 무엇입니까? Jun 01, 2024 am 10:36 AM

PHP 프레임워크 보안 가이드: CSRF 공격을 방지하는 방법은 무엇입니까? CSRF(교차 사이트 요청 위조) 공격은 공격자가 사용자를 속여 피해자의 웹 애플리케이션 내에서 의도하지 않은 작업을 수행하도록 하는 네트워크 공격 유형입니다. CSRF는 어떻게 작동하나요? CSRF 공격은 대부분의 웹 애플리케이션이 동일한 도메인 이름 내의 서로 다른 페이지 간에 요청을 보낼 수 있다는 사실을 이용합니다. 공격자는 피해자의 애플리케이션에 요청을 보내는 악성 페이지를 만들어 승인되지 않은 작업을 촉발합니다. CSRF 공격을 방지하는 방법은 무엇입니까? 1. CSRF 방지 토큰 사용: 각 사용자에게 고유한 토큰을 할당하고 이를 세션이나 쿠키에 저장합니다. 해당 토큰을 제출하려면 신청서에 숨겨진 필드를 포함하세요.

PHP의 CSRF 공격 PHP의 CSRF 공격 May 25, 2023 pm 08:31 PM

인터넷의 지속적인 발전으로 인해 웹 애플리케이션이 점점 더 많아지고 있지만 보안 문제도 점점 더 주목받고 있습니다. CSRF(CrossSiteRequestForgery, 교차 사이트 요청 위조) 공격은 일반적인 네트워크 보안 문제입니다. CSRF 공격이란 무엇입니까? 소위 CSRF 공격은 공격자가 사용자의 신원을 도용하고 사용자의 이름으로 불법적인 작업을 수행하는 것을 의미합니다. 평신도의 관점에서 보면 공격자가 사용자의 로그인 상태를 이용하여 사용자가 모르는 사이에 일부 불법적인 작업을 수행하는 것을 의미합니다.

CSRF (Cross-Site Request Grospory) 란 무엇이며 PHP에서 CSRF 보호를 어떻게 구현합니까? CSRF (Cross-Site Request Grospory) 란 무엇이며 PHP에서 CSRF 보호를 어떻게 구현합니까? Apr 07, 2025 am 12:02 AM

PHP에서는 예측할 수없는 토큰을 사용하여 CSRF 공격을 효과적으로 방지 할 수 있습니다. 특정 방법은 다음과 같습니다. 1. 형태로 CSRF 토큰을 생성하고 포함시킨다. 2. 요청을 처리 할 때 토큰의 유효성을 확인하십시오.

CSRF 공격에 대한 SpringBoot의 방어 프로세스와 원칙은 무엇입니까? CSRF 공격에 대한 SpringBoot의 방어 프로세스와 원칙은 무엇입니까? May 12, 2023 pm 09:13 PM

CSRF 원리 CSRF 공격을 방어하려면 먼저 CSRF 공격이 무엇인지 이해해야 합니다. 다음 그림을 통해 CSRF 공격 프로세스를 정리하겠습니다. 실제로 이 프로세스는 매우 간단합니다. China Merchants Online Banking 웹사이트를 열고 로그인합니다. 2. 로그인에 성공하면 온라인 뱅킹은 쿠키를 프런트 엔드로 반환하고 브라우저는 쿠키를 저장합니다. 3. 사용자는 온라인뱅킹에서 로그아웃하지 않고 브라우저에서 새 탭을 연 후 위험한 웹사이트를 방문했습니다. 4. 이 위험한 웹사이트에는 하이퍼링크가 있으며, 하이퍼링크 주소는 China Merchants Online Banking을 가리킵니다. 4. 사용자가 이 링크를 클릭하면 해당 하이퍼링크는 브라우저에 저장된 쿠키를 자동으로 전달하므로,

PHP와 Vue.js는 CSRF(교차 사이트 요청 위조) 공격을 방어하는 애플리케이션을 개발합니다. PHP와 Vue.js는 CSRF(교차 사이트 요청 위조) 공격을 방어하는 애플리케이션을 개발합니다. Jul 05, 2023 pm 07:21 PM

PHP와 Vue.js는 크로스 사이트 요청 위조(CSRF) 공격을 방어하는 애플리케이션을 개발합니다. 인터넷 애플리케이션이 개발되면서 크로스 사이트 요청 위조(CSRF) 공격이 일반적인 보안 위협이 되었습니다. 사용자의 로그인된 ID를 사용하여 사용자 비밀번호 변경, 스팸 게시 등과 같은 악의적인 작업을 수행하도록 위조된 요청을 보냅니다. 사용자의 보안과 데이터의 무결성을 보호하려면 애플리케이션에 효과적인 CSRF를 구현해야 합니다.

PHP의 CSRF(Cross-Site Request Forgery) 방어 기술 분석 PHP의 CSRF(Cross-Site Request Forgery) 방어 기술 분석 Jun 29, 2023 am 09:20 AM

PHP의 CSRF(Cross-site Request Forgery) 방어 기술 분석 인터넷의 급속한 발전으로 인해 네트워크 보안 문제가 점점 더 부각되고 있습니다. CSRF(교차 사이트 요청 위조) 공격은 일반적인 네트워크 보안 위협으로, 사용자의 로그인된 ID 정보를 사용하여 위장된 요청을 통해 악의적인 작업을 보내 사용자가 모르게 악의적인 작업을 수행하게 합니다. PHP 개발에서는 CSRF 공격을 어떻게 방어할 것인가가 중요한 문제가 되었습니다. CSRF 공격의 원리 CSRF 공격에 대한 방어 방법을 이해하기 전에 먼저 CS를 이해해야 합니다.

See all articles