비밀번호 특정 횟수 이상 틀렸을때 차단 소스 5.4용 없을까요?

비밀번호 특정 횟수 이상 틀렸을때 차단 소스 5.4용 없을까요?

QA

비밀번호 특정 횟수 이상 틀렸을때 차단 소스 5.4용 없을까요?

본문

그누보드4 시절 소스인데요.

 

그누보드5.4에도 어울리게 수정되면 누구나 사용가능하도록 하면 좋을 것 같은데...

 

아쉬워요. 이건 필수인 것 같아요!

 

/extend/ar.hack.passwd.php

 

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 
/*
제목 : 그누보드 비밀번호 해킹 차단 툴 (extend 등록파일)
출처 : 로빈아빠 freeimage.kr 2011-11-19
목적 : 암호 해킹 시도시 IP 차단 (로그인 스크립트로 암호를 찾아내려는 경우)
설치 : 첨부파일 ar.hack.passwd.php 을 extend 에 넣어둠
다운 : http://freeimage.kr/bbs/board.php?bo_table=tip_gnu (업데이트)
설명 :
1) 로그인시 암호를 잘못입력하는 경우 기록파일에 저장을 한다.
2) 한IP에서 일정시간동안 정해진수 이상 로그인을 시도하면 로그인과다로 표시하고 종료한다.
   레벨이 8 이상인 경우 접속제한수가 2배로 됨..
3) 종료시 로그인 시도 담당자와 관리자에게 쪽지를 보낸다.
4) 로그인성공시 실패 기록을 삭제한다.
5) 접속제한수는 제한은 20회 IP차단은 50회 로되어있습니다. 소스에서 수정가능
 $max_limit_out=30; //하루동안 50번이상 시도하면 ip를 접근차단으로 지정하고 종료함..
 $max_limit_warn=20; //하루동안 20번이상 시도하면 접속을 종료하고 로그인 시도 담당자와 관리자에게 쪽지를 보냄

*/
if (strstr($PHP_SELF,"login_check.php") && $_POST[mb_id]) {
 $max_limit_out=30; //하루동안 50번이상 시도하면 ip를 접근차단으로 지정하고 종료함..
 $max_limit_warn=20; //하루동안 20번이상 시도하면 접속을 종료하고 로그인 시도 담당자와 관리자에게 쪽지를 보냄
 
 $mb=sql_fetch("select mb_id,mb_password,mb_level from $g4[member_table] where mb_id='$_POST[mb_id]' limit 1");
 if ($mb[mb_level]>=8) {
  $max_limit_out=$max_limit_out*2;
  $max_limit_warn=$max_limit_warn*2;
 } 
 $key1=date("ymd")."|$_SERVER[REMOTE_ADDR]";
 $ty_password=sql_password($_POST[mb_password]);
 if ($mb && $mb[mb_password]==$ty_password) {
  sql_fetch("delete from $g4[point_table] where mb_id='$mb[mb_id]' and po_rel_table='_check' and po_rel_action='$key1'");
 }
 else if ($mb && $mb[mb_password]!=$ty_password) {
  $row=sql_fetch("select count(*) as cnt from $g4[point_table] where mb_id='$mb[mb_id]' and po_rel_table='_check' and po_rel_action='$key1'");
  if ($row[cnt]>$max_limit_out) {
   //접근차단 지정
   if (!strstr($config[cf_intercept_ip],$_SERVER[REMOTE_ADDR])) {
    if ($config[cf_intercept_ip]) $config[cf_intercept_ip].="\n";
    $config[cf_intercept_ip].=$_SERVER[REMOTE_ADDR];
    $sql="update $g4[config_table] set cf_intercept_ip='".mysql_escape_string($config[cf_intercept_ip])."'";
    //echo $sql;
    sql_query($sql);
   }
   //alert("접근시도 과다. 접근차단 됨");
   exit;
  }
  // 포인트 건별 생성
  $sql = "insert into $g4[point_table] set 
    mb_id = '$mb[mb_id]',
    po_datetime = '$g4[time_ymdhis]',
    po_content = '".addslashes("로그인시도:$_SERVER[REMOTE_ADDR] $_POST[mb_password] $_SERVER[HTTP_USER_AGENT]")."',
    po_point = '0',
    po_rel_table = '_check',
    po_rel_id = '$mb[mb_id]',
    po_rel_action = '$key1' ";
  sql_query($sql);
  //접근이 너무 많음 차단함..
  if ($row[cnt]>$max_limit_warn) {
   $tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
   $me_id = $tmp_row[max_me_id] + 1;
   // 본인에게 쪽지보냄
   $sql = " insert into $g4[memo_table]
       ( me_id, me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo )
      values ( '$me_id', '$mb[mb_id]', '$mb[mb_id]', '$g4[time_ymdhis]', '로그인시도:$row[cnt]회 (시도암호:$_POST[mb_password] $_SERVER[REMOTE_ADDR])\n$_SERVER[HTTP_USER_AGENT]' ) ";
   sql_query($sql);  
   // 관리자에게 쪽지보냄
   if ($mb[mb_id]!=$config[cf_admin]) {
    $tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
    $me_id = $tmp_row[max_me_id] + 1;
    // 쪽지 INSERT
    $sql = " insert into $g4[memo_table]
        ( me_id, me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo )
       values ( '$me_id', '$config[cf_admin]', '$mb[mb_id]', '$g4[time_ymdhis]', '로그인시도:$row[cnt]회 (시도암호:$_POST[mb_password] $_SERVER[REMOTE_ADDR])\n$_SERVER[HTTP_USER_AGENT]' ) ";
    sql_query($sql);  
   }
   alert("로그인 실패 횟수를 초과했습니다. 다음날 로그인을 시도해주세요.  ($row[cnt]/$max_limit_warn)");
   exit;
  }
 }
}
?>

 

 

5.4용으로 변경되면 모든 사이트에 다 적용하면 좋을 것 같습니다

 

정말 좋은 플러그인인데, 5.4 용은 하나도 없어서 아쉽다고 생각해요!

이 질문에 댓글 쓰기 :

답변 2

아래 좌표에서 1000포인트에 판매하네요.

http://amina.co.kr/bbs/board.php?bo_table=skin_member&wr_id=10738

우성님이라면 충분히 만드실수 있으리라 믿습니다!

줄서봅니다~~

답변을 작성하시기 전에 로그인 해주세요.
전체 141
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT