현재 위치: > 최신 기사 목록> 등록 스 와이프 공격을 방지하기위한 PHP의 최상의 보안 관행

등록 스 와이프 공격을 방지하기위한 PHP의 최상의 보안 관행

M66 2025-06-20

등록 스 와이프 공격을 방지하기위한 PHP의 최상의 보안 관행

인터넷이 개발되면서 다양한 웹 사이트 및 응용 프로그램에서 등록 기능이 점점 더 일반화되었지만 동시에 공격자가 자주 사용하는 진입 점이되었습니다. 일반적인 공격 방법 중 하나는 숫자 스 와이프 공격입니다. 공격자는 자동화 된 프로그램을 통해 많은 수의 계정을 등록하고 서버 리소스를 소비하며 일반 서비스를 파괴합니다. 이러한 공격을 처리하려면 효과적인 예방 조치를 취하는 것이 특히 중요합니다. 다음은 PHP 등록 기능의 보안을 보호하는 데 도움이되는 모범 사례입니다.

1. 반 인간 상호 작용 검증을 추가하십시오

스 와이프 공격은 일반적으로 자동화 도구를 사용하여 등록 요청을 신속하게 제출하는 반면 실제 사용자는 등록을 완료하기 위해 서로 상호 작용해야합니다. 반 인간 검증을 추가함으로써 자동 등록을 효과적으로 차단할 수 있습니다.

일반적인 반 인간 상호 작용 검증 방법에는 검증 코드, 슬라이딩 검증, 전화 번호 검증 등이 포함됩니다. Google Recaptcha는 기계 공격의 어려움을 효과적으로 증가시킬 수있는 널리 사용되는 솔루션입니다. 다음은 등록 페이지에서 Google Recaptcha를 통합하는 단계입니다.

<script src="https://www.google.com/recaptcha/api.js?render=당신의Site Key"></script>
<form method="post" action="register.php">
  <!-- 사용자 이름、비밀번호 및 기타 등록 필드 -->
  <div class="g-recaptcha" data-sitekey="당신의Site Key"></div>
  <button type="submit">등록하다</button>
</form>
<script>
grecaptcha.ready(function() {
  grecaptcha.execute('당신의Site Key', {action: 'register'}).then(function(token) {
    // 할 것이다token다른 등록 데이터와 함께 서버에 제출하십시오
  });
});
</script>

서버 측면에서는 recaptcha의 응답을 확인해야하며 다음은 확인 코드 예입니다.

<?php
$secretKey = "당신의Secret Key";
$response = $_POST['g-recaptcha-response'];
$remoteIp = $_SERVER['REMOTE_ADDR'];

$url = "https://www.google.com/recaptcha/api/siteverify?secret=" . $secretKey . "&response=" . $response . "&remoteip=" . $remoteIp;
$response_json = file_get_contents($url);
$response_data = json_decode($response_json, true);

if ($response_data['success'] == true) {
  // 검증이 통과되었습니다,등록 작업을 수행하십시오
} else {
  // 확인이 실패했습니다,표시 오류 메시지를 표시합니다
}
?>

2. 限制注册速度

刷号攻击往往伴随着大量、快速的注册请求。为了减少这种攻击带来的影响,我们可以对注册请求设置频率限制。

例如,可以记录每个IP地址在一定时间范围内的注册次数,并进行限制。以下是限制注册速度的示例代码:

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time_range = 60; // 제한 시간 범위(두번째)
$max_register = 5; // 최대 등록 수

// 데이터베이스 또는 기타 스토리지 방법에서 얻을 수 있습니다IP주소와 관련된 등록 및 타임 스탬프 수
// ...

if ($register_count >= $max_register) {
  $remaining_time = $time_range - (time() - $last_register_time);
  die("너무 많은 등록,기다리세요" . $remaining_time . "두번째后再尝试。");
}

// 데이터베이스 또는 기타 스토리지 방법에 등록 레코드가 추가되었습니다.
// ...
?>

3. 강력한 비밀번호 요구 사항

숫자 스 와이프 공격의 목적 중 하나는 다른 악의적 인 행동에 참여하기 위해 많은 수의 계정을 얻는 것입니다. 공격자가 간단한 암호를 사용하지 않도록 사용자는 사용자가 더 복잡한 암호를 설정하도록 할 수 있습니다.

예를 들어, 암호는 8 자 이상을 포함해야 할 수 있으며 대문자, 소문자, 숫자 및 특수 문자를 포함해야합니다. 다음은 강력한 비밀번호 요구 사항에 대한 코드 예입니다.

<?php
$password = $_POST['password'];

if (strlen($password) < 8 || !preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[@#$%!^&*()-_=+{}~|/<> ?]).*$/&#39;, $ password)) {
  다이 ( "비밀번호가 너무 약해요. 더 강한 비밀번호를 선택하십시오.");
}

// 사용자를 등록하고 데이터베이스 또는 기타 스토리지 방법에 비밀번호를 저장 // ...
?>

요약하면, 반 인간 상호 작용 검증, 등록 빈도 제한 및 강력한 암호를 강요하면 등록 기능의 보안을 크게 향상시키고 숫자 공격을 스 와이프하여 서버의 불필요한 부담을 방지 할 수 있습니다.