php 초단위로 접근 막기

웹에서 폼을 넘길 때 가끔 더블클릭을 하거나 아니면 서버에서 지연이 생기거나 아니면 악의적인 공격을 받고 있거나 할 때,

엔션을 초단위로 막는 여러 가지 방법이 있다. 예를 들어 index.php 에서 act.php 로 로그인 정보를 넘길 때를 가정하자. 아이디와 비밀번호를 입력하고 버튼을 누른다. act.php 로 접근하여 결과를 돌려 주는데 3초가 지나야 서버 쪽 스크립트가 작동하도록 설정을 해보자.

아래의 코드는 act.php 의 제일 상단에 넣어 보자

<?php

if(!isset($_SESSION[‘log_time’])){
$_SESSION[‘log_time’] = time();
$log_gap=3 + 1; // 세션이 없는 사용자가 첫번째로 액션을 취할 때 넘기기 위해서
}else{
$log_gap = time() – $_SESSION[‘log_time’];
}
if($log_gap < 3){
echo ‘[알림] 잠시후에 다시 시도하세요.’;
exit;
}else{
$_SESSION[‘log_time’] = time(); // 로그 타임 리플레쉬
}

 

어느 정보 문제가 해결 되었다.
더 좋은 방법이 있겠지만 내머리로는 여기까지. 끝