데모 공격이라고도 하는 재생 공격은 공격자가 액세스 권한이나 해당 사용자에게 할당된 기타 권한을 얻기 위해 이전에 합법적인 사용자가 서버로 보낸 데이터를 재생하는 것입니다.
비밀번호 스니핑과 마찬가지로 재생 공격을 방지하려면 데이터 노출을 인지해야 합니다. 재생 공격을 방지하려면 공격자가 제한된 리소스에 액세스하는 데 사용되는 데이터를 얻는 것을 더 어렵게 만들어야 합니다. 이를 위해서는 주로 다음 관행을 피해야 합니다.
보호된 리소스에 대한 영구 액세스 권한이 있는 데이터 사용 설정
보호된 데이터 노출 설정 리소스에 대한 액세스를 제공합니다(임시 액세스만 제공하는 데이터도 포함).
이런 방식으로 보호된 리소스에 대한 임시 액세스를 설정하는 데이터만 사용해야 하며, 이 데이터의 유출도 방지해야 합니다. 이는 일반적인 지침일 뿐이지만 운영 방법에 대한 지침을 제공할 수 있습니다.
내가 아는 한 첫 번째 원칙은 무서운 빈도로 위반된다는 것입니다. 많은 개발자는 중요한 데이터가 노출되지 않도록 보호하는 데만 집중하고 보호된 리소스에 대한 영구 액세스를 설정하는 데 사용되는 데이터 사용으로 인해 발생하는 위험을 무시합니다.
예를 들어, 양식 유효성 검사 양식에 대한 비밀번호 해시를 계산하는 로컬 스크립트를 생각해 보세요. 이런 방식으로 비밀번호의 일반 텍스트는 노출되지 않고 해시 값만 노출됩니다. 이는 사용자의 원래 비밀번호를 보호합니다. 이 프로세스의 주요 문제점은 재생 취약성이 동일하게 유지된다는 것입니다. 공격자는 합법적인 인증 프로세스를 한 번만 재생하고 인증을 통과할 수 있으며 사용자의 비밀번호가 일관적인 한 인증 프로세스는 성공합니다.
보다 안전한 운영 솔루션, MD5 JavaScript 소스 파일 및 기타 알고리즘은 http://www.php.cn /을 참조하십시오. .
첫 번째 원칙에 대한 유사한 위반은 리소스에 대한 영구적인 액세스를 제공하기 위해 쿠키를 지정하는 것입니다. 예를 들어 쿠키를 설정하여 영구 액세스 메커니즘을 실행하려는 다음 시도를 고려해 보세요.
CODE: <?php $auth = $username . md5($password); setcookie('auth', $cookie); ?>
사용자가 인증 쿠키를 제공하면 프로그램은 쿠키에 있는 비밀번호의 해시가 데이터베이스에 저장된 비밀번호의 해시와 일치하는지 확인합니다. 일치하면 사용자가 인증됩니다.
이 프로세스의 문제점은 인증 쿠키의 노출이 매우 큰 위험이라는 것입니다. 캡처되면 공격자는 영구적인 액세스 권한을 얻습니다. 합법적인 사용자의 쿠키는 만료될 수 있지만 공격자는 매번 인증을 위해 쿠키를 제공할 수 있습니다. 이 상황에 대한 설명은 그림 7-2를 참조하십시오.
더 나은 영구 로그인 솔루션은 임시 액세스 권한을 설정하는 데에만 데이터를 사용하는 것입니다. 이는 다음 섹션의 주제이기도 합니다.
위 내용은 PHP 보안 재생 공격 내용이며, 보다 자세한 내용은 PHP 중국어 홈페이지(www.php)를 참고하시기 바랍니다. .cn)!