백엔드 개발 PHP 튜토리얼 CSRF 공격을 방지하기 위해 PHP 양식을 사용하는 방법

CSRF 공격을 방지하기 위해 PHP 양식을 사용하는 방법

Jun 24, 2023 am 11:53 AM
CSRF 공격 PHP 양식 예방 요령

네트워크 기술이 지속적으로 발전함에 따라 보안 문제는 네트워크 애플리케이션 개발에서 무시할 수 없는 문제가 점점 더 커지고 있습니다. 그 중 CSRF(Cross-Site Request Forgery) 공격은 일반적인 공격 방법으로, 사용자가 브라우저에서 악의적인 요청을 시작할 수 있도록 하여 백그라운드로 불법적인 요청을 시작하도록 하는 것이 주요 목적입니다. 이로 인해 서버측 보안 취약점이 발생합니다. PHP 애플리케이션에서 양식 유효성 검사를 사용하는 것은 CSRF 공격을 방지하는 효과적인 수단입니다.

  1. CSRF 토큰 확인 추가

CSRF 공격은 주로 로그인한 사용자의 신원을 사용하여 원격 공격을 수행합니다. 이 공격 방법으로부터 보호하는 가장 직접적인 방법은 페이지 데이터에 몇 가지 색다른 값을 추가하는 것입니다. 및 양식. 각 양식 요청이 한 번만 전송되도록 제한합니다. 이 값은 양식을 제출할 때 신원 정보가 합법적인지 확인하는 데 사용되는 CSRF 토큰입니다. 백그라운드에서 양식 제출을 처리할 때 토큰을 확인해야 합니다. 미리 설정된 토큰과 일치하는 경우에만 요청을 계속 처리할 수 있습니다.

샘플 코드는 다음과 같습니다.

// 生成Token值,通常可以在session中设置

session_start();

$token = md5(uniqid(mt_rand(), true));

$_SESSION['csrf_token'] = $token;

// 应用到表单中

<input type="hidden" name="csrf_token" value="<?=$_SESSION['csrf_token']?>"/>
로그인 후 복사

양식 제출의 경우 데이터를 처리하기 전에 다음과 같이 토큰 확인이 필요합니다.

// 获取表单提交的Token

$submittedToken = $_POST['csrf_token'];

// 验证Token是否合法

if (!isset($_SESSION['csrf_token']) || $submittedToken !== $_SESSION['csrf_token']) {

    die('Token validation failed, request denied');

}
로그인 후 복사

위 코드에서는 PHP의 세션 메커니즘을 사용하여 무작위의 중복되지 않는 토큰을 생성합니다. 값이며 세션에 저장됩니다. 양식에서 양식이 제출될 때 서버로 전송될 수 있도록 토큰 값을 숨겨진 필드의 필드로 백그라운드에 전달해야 합니다. 서버 측에서는 요청된 토큰 값을 확인해야 합니다. 제출된 토큰이 사전 정의된 토큰과 일치하지 않으면 요청을 거부해야 합니다.

  1. 리퍼러 정책 헤더 구성

리퍼러 정책은 타사 사이트에 요청을 보낼 때 브라우저에 리퍼러 필드를 포함할지 여부를 제어하는 ​​데 사용되는 HTTP 헤더입니다. 양식 처리 중에 불법적인 Referrer 필드에 대한 요청을 직접 거부하면 CSRF 공격을 효과적으로 방어할 수 있습니다.

PHP에서는 다음 코드를 사용하여 리퍼러 정책 헤더를 설정할 수 있습니다.

header('Referrer-Policy: no-referrer');
로그인 후 복사

위 코드는 요청을 보낼 때 리퍼러 헤더 정보를 포함하지 않도록 브라우저에 지시합니다. 이렇게 하면 공격자가 Referrer 헤더를 위조하여 CSRF 공격을 시도하더라도 브라우저에서 거부되어 서버로 요청이 전송되지 않습니다.

  1. 양식에 "인증 코드" 또는 "비밀번호" 인증 추가

양식에 CSRF 토큰을 추가하는 것 외에도 인증 코드나 비밀번호와 같은 추가 인증 방법을 추가하여 양식의 보안을 강화할 수도 있습니다. CSRF 공격을 방지합니다. 이 방법은 상대적으로 번거롭기는 하지만, 공격자가 아무리 서버를 속이려고 해도 추가적인 인증링크를 거쳐야 하므로 공격이 더욱 어려워지기 때문에 매우 효과적이다.

  1. 양식 제출 시 GET 메서드 사용 피하기

CSRF 공격은 대부분 GET 요청을 통해 시작되므로 양식에 데이터를 제출하기 위해 GET 메서드 사용을 피하려고 합니다. GET 방법을 사용해야 하는 경우 양식의 보안을 강화하기 위해 토큰 값이나 기타 인증 방법을 양식에 추가해야 합니다.

요컨대 CSRF 공격을 예방하는 것은 PHP 애플리케이션 개발에 있어서 반드시 주의해야 할 문제입니다. 토큰 값, 리퍼러 정책 헤더, 인증 코드 등 다양한 보안 메커니즘을 합리적으로 사용함으로써 CSRF 공격의 위협으로부터 애플리케이션을 효과적으로 보호할 수 있습니다. 동시에 우리는 최신 네트워크 보안 문제와 공격 방법에 계속 주의를 기울여야 하며 보안 예방 조치를 신속하게 업데이트하고 개선해야 합니다.

위 내용은 CSRF 공격을 방지하기 위해 PHP 양식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 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 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

보안을 강화하기 위해 PHP 양식에서 2단계 인증을 사용하는 방법 보안을 강화하기 위해 PHP 양식에서 2단계 인증을 사용하는 방법 Jun 24, 2023 am 09:41 AM

오늘날 디지털화와 네트워킹 시대를 맞이하여 보안은 인터넷 세상에서 무시할 수 없는 중요한 요소 중 하나가 되었습니다. 특히 데이터 민감도가 높은 비즈니스 시나리오에서는 웹 사이트, 애플리케이션 및 사용자 데이터의 보안을 향상하는 방법이 특히 중요합니다. 보안을 강화하기 위해 PHP 양식에서 2단계 인증을 사용하는 것이 가능한 솔루션입니다. 이중 인증, 다단계 인증이라고도 하는 2단계 인증(2FA)은 사용자가 일반 계정 비밀번호를 입력하는 프로세스를 의미합니다.

Java 프레임워크 보안 아키텍처 설계는 CSRF 공격을 어떻게 방지합니까? Java 프레임워크 보안 아키텍처 설계는 CSRF 공격을 어떻게 방지합니까? Jun 06, 2024 pm 12:21 PM

Java 프레임워크는 다음 방법을 통해 CSRF 공격을 방지합니다. CSRFToken 확인: 서버는 요청의 CSRFToken이 세션의 토큰과 일치하는지 여부를 확인합니다. STP(SynchronizerTokenPattern): 서버는 특정 양식 또는 링크와 연관된 토큰을 사용하여 해당 토큰이 양식/링크를 제출하거나 클릭할 때 전송된 토큰과 일치하는지 확인합니다. DoubleSubmitCookies: 두 개의 쿠키를 사용하여 요청이 유효한 사용자로부터 온 것인지 확인합니다.

PHP 양식 보호 팁: 반복적인 양식 제출을 방지하는 방법 PHP 양식 보호 팁: 반복적인 양식 제출을 방지하는 방법 Jun 24, 2023 am 11:50 AM

데이터 제출을 위해 PHP 양식을 사용할 때 반복적인 양식 제출 문제가 자주 발생합니다. 이로 인해 부정확한 데이터가 발생하거나 더 심각한 경우 시스템 충돌이 발생할 수 있습니다. 따라서 중복 제출을 방지하는 방법을 이해하는 것이 매우 중요합니다. 이 기사에서는 반복되는 양식 제출 문제를 효과적으로 방지하는 데 도움이 되는 몇 가지 PHP 양식 보호 기술을 소개합니다. 1. 양식에 토큰 추가 양식에 토큰을 추가하는 것은 반복 제출을 방지하는 일반적인 방법입니다. 이 방법의 원리는 다음을 포함하는 양식에 숨겨진 필드를 추가하는 것입니다.

CSRF 공격으로부터 Ajax 애플리케이션을 보호하기 위한 보안 조치 CSRF 공격으로부터 Ajax 애플리케이션을 보호하기 위한 보안 조치 Jan 30, 2024 am 08:38 AM

Ajax 보안 분석: CSRF 공격을 방지하는 방법은 무엇입니까? 소개: 웹 애플리케이션이 개발되고 프런트 엔드 기술이 널리 적용됨에 따라 Ajax는 개발자의 일상 작업에 없어서는 안 될 부분이 되었습니다. 그러나 Ajax는 또한 애플리케이션에 일부 보안 위험을 가져오는데, 그 중 가장 일반적인 것은 CSRF 공격(Cross-SiteRequestForgery)입니다. 이 기사에서는 CSRF 공격의 원칙부터 시작하여 Ajax 애플리케이션에 대한 보안 위협을 분석하고 몇 가지 방어 C를 제공합니다.

PHP 양식에서 모바일 및 반응형 디자인을 처리하는 방법 PHP 양식에서 모바일 및 반응형 디자인을 처리하는 방법 Aug 10, 2023 am 11:51 AM

PHP 양식에서 모바일 및 반응형 디자인을 처리하는 방법 모바일 장치의 인기와 빈도가 증가하고 모바일 장치를 사용하여 웹 사이트에 액세스하는 사용자가 점점 더 많아짐에 따라 모바일에 적응하는 것이 중요한 문제가 되었습니다. PHP 양식을 다룰 때 모바일 친화적인 인터페이스와 반응형 디자인을 달성하는 방법을 고려해야 합니다. 이 문서에서는 PHP 양식에서 모바일 및 반응형 디자인을 처리하는 방법을 설명하고 코드 예제를 제공합니다. 1. HTML5를 이용한 반응형 폼 HTML5는 반응형 폼을 쉽게 구현할 수 있는 몇 가지 새로운 기능을 제공합니다.

PHP 보안 보호: CSRF 공격 제어 PHP 보안 보호: CSRF 공격 제어 Jun 24, 2023 am 08:22 AM

인터넷의 발달로 사이버공격의 빈도가 증가하고 있다. 그 중 CSRF(Cross-SiteRequestForgery) 공격은 웹사이트나 애플리케이션에 대한 주요 위협 중 하나가 되었습니다. CSRF 공격은 공격자가 로그인한 사용자의 ID를 사용하여 요청을 위조하여 불법적인 작업을 수행하는 것을 말합니다. PHP는 일반적으로 사용되는 서버 측 프로그래밍 언어입니다. 개발자는 CSRF 공격을 피하기 위해 PHP 보안 보호에 주의해야 합니다. CSRF 공격을 제어하는 ​​몇 가지 방법은 다음과 같습니다. 1. CSRF 사용

CSRF 공격을 방지하기 위해 PHP 양식을 사용하는 방법 CSRF 공격을 방지하기 위해 PHP 양식을 사용하는 방법 Jun 24, 2023 am 11:53 AM

네트워크 기술이 지속적으로 발전함에 따라 네트워크 애플리케이션 개발에 있어서 보안 문제는 점점 더 무시할 수 없는 문제가 되고 있습니다. 그 중 CSRF(Cross-Site Request Forgery) 공격은 일반적인 공격 방법으로, 사용자가 브라우저에서 악의적인 요청을 시작할 수 있도록 하여 백그라운드로 불법적인 요청을 시작하도록 하는 것이 주요 목적입니다. 이로 인해 서버측 보안 취약점이 발생합니다. PHP 애플리케이션에서 양식 유효성 검사를 사용하는 것은 CSRF 공격을 방지하는 효과적인 수단입니다. CSRFToken을 추가하여 CSRF 공격 확인

Linux 서버 네트워크 보안: CSRF 공격으로부터 웹 인터페이스 보호. Linux 서버 네트워크 보안: CSRF 공격으로부터 웹 인터페이스 보호. Sep 11, 2023 pm 12:22 PM

Linux 서버 네트워크 보안: CSRF 공격으로부터 웹 인터페이스 보호 최근 몇 년 동안 인터넷의 인기와 발전으로 사람들은 네트워크 보안에 점점 더 많은 관심을 기울이고 있습니다. 오픈 소스 원칙을 기반으로 하는 운영 체제인 Linux는 네트워크 보안 분야에서 광범위한 응용 프로그램과 인지도를 보유하고 있습니다. Linux 서버를 사용할 때 CSRF(Cross-SiteRequestForgery) 공격으로부터 웹 인터페이스를 보호하는 것은 중요한 작업입니다. CSRF 공격은 악용입니다

See all articles