그누보드 로그인차단 플러그인(2021-03-24 업데이트) > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

그누보드 로그인차단 플러그인(2021-03-24 업데이트) 정보

그누보드 로그인차단 플러그인(2021-03-24 업데이트)

첨부파일

login_ban.zip (10.5K) 237회 다운로드 2021-03-24 17:14:09
테스트한 버전5.4.5.2
호환 가능 버전5.4.4이상

본문

 

같은 아이피에서 5회이상 로그인을 실패하면 접속을 차단하는 플러그인입니다.

 

관리자 계정으로 접속한 관리자 페이지에서 차단리스트 조회와 차단 해제가 가능합니다.

 

 

 

 

* g5_login_manage 테이블이 생성되지않으면 관리자 페이지의 DB업그레이드를 이용하시면 정상적으로 테이블 생성이 됩니다.

3717582117_1615878929.8208.png

 

----------------------------------------------2021-03-22 업데이트 내역-----------------------------------------

 

3717582117_1616396007.316.png

로그인 차단 관리 페이지가 추가 되었습니다.

해당 페이지는 관리자 계정으로 접속하여 관리 -> 회원관리에서 접근 할 수 있으며

영구 차단은 설정한 접근 차단 횟수이상 로그인을 실패하면 해당 ip의 접근을 로그인 차단 리스트에서 관리자가 해제를 해주기 전까지는 무제한으로 차단이 되는 설정입니다.

일시 차단은 차단된 ip의 사용자가 설정한 차단 시간(분 단위)이 지나면 자동으로 차단이 해제되는 설정입니다.

기존의 5회 영구 차단에서 관리자가 임의로 설정한 값에 따라 로그인 차단 플러그인이을 활용 할 수 있게끔 수정하였습니다.

 

또 기존의 로그인 성공 시에도 리스트가 남아있는 현상을 수정하여 로그인에 성공하면 해당 IP의 차단리스트 초기화 하게끔 수정하였습니다.

 

그 외로 로그인 차단이 되었을경우 일시 차단의 경우 차단 일시와 차단횟수, 영구차단일 경우 차단횟수가 표시 되는 안내문을 추가하였습니다.

 

해당 기능에 개선점이나 추가적으로 필요한 점을 덧글로 피드백해주시면 감사하겠습니다.

 

 

 

----------------------------------------------2021-03-24 업데이트 내역-----------------------------------------

3717582117_1616574072.4159.png

 - 자동입력방지차단 방식이 추가되었습니다.

3717582117_1616573466.6359.png

기존에 설정한 차단 횟수만큼 로그인에 실패할 경우 해당 계정에 대한 접근은 자동입력방지숫자를 입력해야만 접근이 가능한 기능이 추가되었습니다.

 

 - 차단 조건을 변경하였습니다.

 기존 ) ip를 기준으로 차단

 변경 ) ip와 계정명을 기준으로 차단 해당 계정에 대한 ip차단으로 변경되어 해당 ip에서 첫번째 계정으로 차단이 되어도 다른계정으로 접근이 가능하게끔 수정

 - 차단 조건 변경으로 인해 이제 차단 리스트에서 계정명도 확인이 가능합니다.

 - 그누보드 멤버(회원 관리)테이블에 존재 하지않는 계정은 차단리스트에 등록되지 않게끔 수정하였습니다.

 - 차단 리스트 출력 조건이 설정한 차단횟수가 아닌 5회로 고정되어있던 오류를 수정하였습니다.

 

 

* p.s ) 기존에 미리 플러그인을 사용해 보셨던 사용자들은 업데이트된 플러그인을 사용하시려면 기존에 생성된 ???_login_manage 테이블을 제거하고 DB업그레이드 메뉴를 이용하여 DB를 업그레이드 하여 사용해주세요.

추천
18

댓글 전체

일단 5.3에서 해보니 500 에러가 발생되네요..아무래도 login_ban_manage.php 에서 발생되는거같은데 이부분은 좀더 확인해봐야겠네요
AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function add_event() in ... /login_ban_manage.php:4\nStack  이렇게 오류가 나네요.
add_event('password_is_wrong', 'login_log_insert_function', 1, 2); 해당 파일 부분인데 이문제때문에 사이트 오류로 인해 db테이블생성을 못하네요.
지우면 다시 멀쩡해지는데...음..
그누보드5 디렉토리에 들어가시면 extend와 plugin디렉토리가 존재하는데 해당 압축 폴더안에있는 extend디렉토리 파일들은 extend 디렉토리에 붙여넣으시고 plugin디렉토리 파일들은 plugin디렉토리에 똑같이 붙여 넣으시면 됩니다.
5431버전 사용자입니다.

차단해제버튼 누르면 / 해제가 안됩니다.

Fatal error: Uncaught Error: Call to undefined function auth_check_menu() in
/plugin/login_ban/login_ban_manage_delete.php:8 Stack trace: #0 {main}
thrown in /plugin/login_ban/login_ban_manage_delete.php on line 8
혹시 설치하신 그누보드에 adm 디렉토리안에 admin.lib.php 파일이 없으신가요? 있으시다면 G5_ADMIN_PATH 경로 상수를 수정 하셨는지 확인 부탁드립니다.
5431 깨끗한버전이구요
adm 디렉토리안에 admin.lib.php 파일 있어요
G5_ADMIN_PATH 경로 안바꿧는데요

로그인 차단 관리

Fatal error: Uncaught Error: Call to undefined function auth_check_menu() in /usr/gnuboard/plugin/login_ban/skin/adm.config.php:4 Stack trace: #0 /usr/gnuboard/extend/login_ban_manage.php(211): include_once() #1 /usr/gnuboard/lib/Hook/hook.extends.class.php(23): add_login_ban_config(Array, NULL) #2 /usr/gnuboard/lib/Hook/hook.class.php(188): GML_Hook->runAction(Array, Array) #3 /usr/gnuboard/lib/hook.lib.php(64): Hook::doAction('admin_get_page_...', Array, false) #4 /usr/gnuboard/adm/view.php(25): run_event('admin_get_page_...', Array, NULL) #5 {main} thrown in /usr/gnuboard/plugin/login_ban/skin/adm.config.php on line 4
그누보드 5.4.4 버전 이상에서부터 정상적으로 사용이 가능한 플러그인입니다.

그누보드를 업그레이드 하시지 않고 기존 버전에서 이용하시려면

admin.lib.php 파일에

function auth_check_menu($auth, $sub_menu, $attr, $return=false) {

    $check_auth = isset($auth[$sub_menu]) ? $auth[$sub_menu] : '';
    return auth_check($check_auth, $attr, $return);

}
함수를 추가 하셔야 할것 같습니다.

하지만 그누보드를 업데이트하시고 사용하시는걸 추천드립니다.
당연히 해드려야죠~ ㅎㅎ
-----------------------------
해당 DB테이블 삭제 후 재업로드 하니 접속 잘 됩니다.

- 영구차단
- 영구차단 아이피 리스트 해제
- 일시차단 (5분 후 자동해제)
- 성공시 DB에 남은 차단된 아이피 흔적 삭제

모두 잘 됩니다.  잘 사용하겠습니다.
올려주신 플러그인 사용하려고 다운받아서 extend/plugin 폴더에 넣고 실행을 하니 DB에 테이블은 잘 생성됬는데 관리자 메뉴에 페이지가 추가되지 않고
debug 돌렸을 때 The script '~~~' is outside the project라고 뜨면서 관리자메뉴에 페이지 추가하는 부분이 오류를 냅니다 어떻게 해결을 해야할지 몰라서 댓글남겨 봅니다 ㅠ
그누보드 버전은 테스트하신 버전과 동일한 버전을 사용했습니다.
한가지 건의 를 드린다면 차단아이피에 시도한 아이디도 나오는게 좋을 듯 싶습니다.
같은 아이피에서 지정한 횟수 내에서 정상 로그인하면 차단아이피 기록이 자동삭제되지만
차단된 후 다른 곳에서 정상로그인 시에 처음 차단된 기존 아이피는 차단된 상태 그대로 입니다.
경우에 따라 정상 사용자가 차단된 아이피 삭제를 요청할 수도 있으니
차단된 아이디도 나오는게 낫지 않을 까 싶습니다.
(차단된 후 다른 곳에서 정상적으로 로그인한 사용자에 한하여 입니다.)
빠르시네요 ㅎㅎ
모두 잘 작동됩니다. 
자동입력방지차단 방식은
나리야 라서 지정횟수 후에 입력하는 로그인 폼이
깨지는거 빼고는 잘 작동됩니다.

자동입력방지차단 방식을 사용하고픈
빌더 사용자는 각자 로그인 폼 수정해서 쓰면 될 것 같습니다.
감사합니다.~~
말씀하신대로 수정하니 화면에 정상작동은 하는데,

영구차단,접근횟수2 를 임시설정하고 테스트 해보니

g5_login_manage 테이블에서 아이피기록 잘되고
화면에 차단 문구는 정상적으로 되오나

로그인 차단 리스트 메뉴에
차단아이피 표시가 나오지않습니다.

차곡차곡 다듬어 가는데 계속 신버전 업데이트에
다시 꾸려가기에 힘드네요;;
g5431 구버전도 잘부탁드립니다. 살펴주세요~
지금에서야 설치해보니..

Fatal error: Uncaught Error: Call to undefined function auth_check_menu() in /usr/gnuboard5431/plugin/login_ban/skin/adm.config.php:4 Stack trace: #0 /usr/gnuboard5431/extend/login_ban_manage.php(241): include_once() #1 /usr/gnuboard5431/lib/Hook/hook.extends.class.php(23): add_login_ban_config(Array, NULL) #2 /usr/gnuboard5431/lib/Hook/hook.class.php(188): GML_Hook->runAction(Array, Array) #3 /usr/gnuboard5431/lib/hook.lib.php(64): Hook::doAction('admin_get_page_...', Array, false) #4 /usr/gnuboard5431/adm/view.php(25): run_event('admin_get_page_...', Array, NULL) #5 {main} thrown in /usr/gnuboard5431/plugin/login_ban/skin/adm.config.php on line 4

로그인 차단 관리 클릭하면 위와 같은 문구가 뜹니다.
로그인 차단 리스트 클릭하면 화면은 잘나옵니다.
음... 설치 완료 했구요. 설정도 마쳤습니다.
기능의 효과성은 ^^ 운영을 하다 보면 알겠죠~
좋은 자료 공유해주셔서 오땡스~
테스트 해봤는데 잘 되네요. 감사합니다.
사용 후 추가 하면 좋겠다는 점이 있어서 댓글 남김니다.
- 영구차단, 로그인 실패 5회로 설정하고...
  1) 로그인 실패했을 경우 1회부터~4회까지 몇 번 실패했는지 횟수 추가가 필요 할 것 같습니다.
  2) 예로 5회 설정하고 3회 실패 후 4회에서 로그인 성공 했을 경우 전의 3회 실패 횟수 기록이
      초기화 하는 것을 추가 했으면 좋겠습니다. 
 
    오늘도 즐거운 하루 되세요...

저도 설치해보니까 로그인 성공을 해도 캡챠가 나오기 전에 로그인을 성공하면 그전에 실패 했던 로그가 디비에 그대로 남아 있네요.. ㅠㅠ 그리고 어디서든 로그인 성공을 하면 해당 아이디에 대한건 모두 지워져야 좋을꺼 같아요. 다른 아이피에서는 계속 차단 상태로 있을테니까 수동으로 문의를 받고 차단 해제를 해줘야 하는 상황이 종종 나올꺼 같습니다.

전체 504
그누보드5 플러그인 내용 검색

회원로그인

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