공격자가 자신에 속하지 않는 네트워크 패킷을 가로 채고 재생하는 공격은 매우 위험하며 때로는 심각한 손상을 일으킨다. 암호화 된 통신 채널에서도 공격자는 암호 해독 키에 대한 액세스없이 이러한 공격을 시작할 수 있습니다. 공격자는 단순히 당신의 라인에 도청하고 특정 패킷 세트에서 수행하는 작업을 대략 이해 한 다음 해당 패킷이나 요청을 재현함으로써 의사 소통을 방해하거나 더 심각한 손상을 유발할 수 있습니다.
이 기사는 웹 사이트가 재생 공격을받지 않도록 간단하고 사용하기 쉬운 기본 방법을 소개합니다. 또한 화난 사용자가 잘못된 시간 동안 마지막 게시물 요청을 반복적으로 반복하는 것을 방지합니다.
이런 방식으로, 악의적 인 사용자가 서버로 전송 된 임계 요청을 가로 채더라도 요청에 포함 된 토큰이 서버로 전송 된 후 더 이상 유효하지 않으므로 요청을 반복 할 수 없습니다. F5 키를 실수로 누르고 서버에 정보를 게시 한 후 요청을 재현 한 부주의 한 사용자에게도 마찬가지입니다.
- 테스트 환경
일회성 토큰의 개념을 구현하려면 간단한 텍스트 상자와 제출 버튼이있는 샘플 페이지를 만듭니다. 또한 테스트 출력을 표시하기 위해 태그 컨트롤을 추가합니다. -
<input type="hidden">
배경 코드는 제출 시간과 텍스트 상자에 포함 된 데이터를 보여주는 간단한 스 니펫입니다. - 페이지를 제출 한 후 출력은 다음과 같습니다.
-
재생 공격의 결과는 무엇입니까? -
내 웹 사이트가 재생되는 것을 방지하는 방법은 무엇입니까?
솔루션
후에는 게시 된 토큰이 세션에 저장된 토큰과 동일한 경우에만 게시 된 데이터가 표시되도록 page_load () 함수를 변경합니다.
이런 식으로 유효한 버튼 클릭 제출 및 오류 반복 요청을 구별 할 수 있습니다.
다음으로 코드를 쉽게 읽고 관리 할 수 있도록 코드를 쉽게 읽을 수 있도록 페이지 토큰과 세션 토큰을 토큰 화 된 페이지 클래스에 추가 된 두 가지 속성으로 캡슐화합니다. 코드를 웹 페이지에서 쉽게 포업 할 수 있도록 입력 필드를 숨기는 대신 viewstate 컬렉션을 사용하여 페이지 토큰을 저장합니다. 또한 Page.title 속성을 세션에 토큰을 저장하는 키로 사용합니다. 이를 통해 코드가 향상되고 웹 사이트 사용을 브라우저의 단일 탭으로 제한하는 두 번째 문제를 부분적으로 해결할 수 있습니다. 이 변경 사항을 적용하면 다른 탭에서 웹 사이트의 다른 페이지를 열 수 있지만 토큰을 공유하므로 별도의 탭에서 동일한 페이지의 여러 인스턴스를 열 수 없습니다. 이 문제는 나중에 해결됩니다.
더 나은
이 코드의 한 가지 문제는 브라우저에 동일한 페이지를 가리키는 두 개의 탭이있는 경우 하나의 탭을 게시하면 동일한 세션 토큰 키를 사용하기 때문에 다른 탭의 토큰이 무효화됩니다. 이는 토큰 ID를 추가하여 해결할 수 있으며,이 탭에서 발생하는 각 요청-응답 순서는 고유 한 토큰 세트를 사용하고 같은 페이지의 다른 요청을 방해하지 않도록합니다. 가장 먼저해야 할 일은 TokenizedPage 클래스를 반환하고 Tokenid 속성을 추가하는 것입니다. 이 속성은 처음으로 초기 GET 요청을 호출 할 때 임의의 ID를 생성하고 향후 재사용을 위해 ViewState 컬렉션에 저장합니다.
SSL (Secure Sockets Layer) 및 TLS (Transport Layer Security)는 네트워크 보안 통신을 제공하는 암호화 프로토콜입니다. 전송중인 데이터를 암호화하고 시퀀스 번호와 타임 스탬프의 조합을 사용하여 각 데이터 전송의 고유성을 보장함으로써 재생 공격을 방지합니다.
위의 문제를 해결하기 위해, 우리가해야 할 첫 번째 일은 토큰 생성 기능을 캡슐화하는 클래스를 정의하는 것입니다. 우리는 클래스 토큰 화 된 페이지의 이름을 지정하여 System.web.ui.page에서 파생하여 향후 페이지에 사용할 수 있도록합니다.
마지막으로, 테스트 환경에서와 마찬가지로 GeneraterAndomToken () 함수와 OnPrerender () 이벤트의 재정의를 추가합니다.
다음으로, 우리는 Page.title 속성을 사용하는 대신 Tokenid 속성을 사용하도록 SessionHidDentoken 속성을 변경합니다.
나머지 질문
랜덤 번호는 커뮤니케이션 세션에서 한 번만 사용되는 임의 또는 의사 랜덤 번호입니다. 동일한 데이터를 여러 번 전송하더라도 각 데이터 전송이 고유한지 확인하여 재생 공격을 방지합니다. 이로 인해 공격자가 데이터 전송을 성공적으로 재생하는 것을 방지합니다.
타임 스탬프는 재생 공격을 방지하는 데 중요한 역할을 할 수 있습니다. 각 데이터 전송에 타임 스탬프를 추가하면 각 전송이 고유하고 성공적으로 재생할 수 없는지 확인할 수 있습니다. 재생 전송이 감지되면 타임 스탬프를 기반으로 쉽게 식별하고 폐기 할 수 있습니다.
위 내용은 웹 사이트의 재생 공격을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오

이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th

CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

이 GO 기반 네트워크 취약점 스캐너는 잠재적 보안 약점을 효율적으로 식별합니다. 속도를 위해 Go의 동시성 기능을 활용하고 서비스 감지 및 취약성 일치를 포함합니다. 그 능력과 윤리를 탐색합시다


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
