그누보드 로그인차단 플러그인(2021-03-24 업데이트) 정보
그누보드 로그인차단 플러그인(2021-03-24 업데이트)첨부파일
본문
같은 아이피에서 5회이상 로그인을 실패하면 접속을 차단하는 플러그인입니다.
관리자 계정으로 접속한 관리자 페이지에서 차단리스트 조회와 차단 해제가 가능합니다.
* g5_login_manage 테이블이 생성되지않으면 관리자 페이지의 DB업그레이드를 이용하시면 정상적으로 테이블 생성이 됩니다.
----------------------------------------------2021-03-22 업데이트 내역-----------------------------------------
로그인 차단 관리 페이지가 추가 되었습니다.
해당 페이지는 관리자 계정으로 접속하여 관리 -> 회원관리에서 접근 할 수 있으며
영구 차단은 설정한 접근 차단 횟수이상 로그인을 실패하면 해당 ip의 접근을 로그인 차단 리스트에서 관리자가 해제를 해주기 전까지는 무제한으로 차단이 되는 설정입니다.
일시 차단은 차단된 ip의 사용자가 설정한 차단 시간(분 단위)이 지나면 자동으로 차단이 해제되는 설정입니다.
기존의 5회 영구 차단에서 관리자가 임의로 설정한 값에 따라 로그인 차단 플러그인이을 활용 할 수 있게끔 수정하였습니다.
또 기존의 로그인 성공 시에도 리스트가 남아있는 현상을 수정하여 로그인에 성공하면 해당 IP의 차단리스트 초기화 하게끔 수정하였습니다.
그 외로 로그인 차단이 되었을경우 일시 차단의 경우 차단 일시와 차단횟수, 영구차단일 경우 차단횟수가 표시 되는 안내문을 추가하였습니다.
해당 기능에 개선점이나 추가적으로 필요한 점을 덧글로 피드백해주시면 감사하겠습니다.
----------------------------------------------2021-03-24 업데이트 내역-----------------------------------------
- 자동입력방지차단 방식이 추가되었습니다.
기존에 설정한 차단 횟수만큼 로그인에 실패할 경우 해당 계정에 대한 접근은 자동입력방지숫자를 입력해야만 접근이 가능한 기능이 추가되었습니다.
- 차단 조건을 변경하였습니다.
기존 ) ip를 기준으로 차단
변경 ) ip와 계정명을 기준으로 차단 해당 계정에 대한 ip차단으로 변경되어 해당 ip에서 첫번째 계정으로 차단이 되어도 다른계정으로 접근이 가능하게끔 수정
- 차단 조건 변경으로 인해 이제 차단 리스트에서 계정명도 확인이 가능합니다.
- 그누보드 멤버(회원 관리)테이블에 존재 하지않는 계정은 차단리스트에 등록되지 않게끔 수정하였습니다.
- 차단 리스트 출력 조건이 설정한 차단횟수가 아닌 5회로 고정되어있던 오류를 수정하였습니다.
* p.s ) 기존에 미리 플러그인을 사용해 보셨던 사용자들은 업데이트된 플러그인을 사용하시려면 기존에 생성된 ???_login_manage 테이블을 제거하고 DB업그레이드 메뉴를 이용하여 DB를 업그레이드 하여 사용해주세요.
18
댓글 전체
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테이블생성을 못하네요.
지우면 다시 멀쩡해지는데...음..
건의 사항으로는 몇회 잘못입력했다는 문구가 나왔으면 좀 더 편할것같아요
차단해제버튼 누르면 / 해제가 안됩니다.
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 경로 안바꿧는데요
로그인 차단 관리
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
그누보드를 업그레이드 하시지 않고 기존 버전에서 이용하시려면
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);
}
함수를 추가 하셔야 할것 같습니다.
하지만 그누보드를 업데이트하시고 사용하시는걸 추천드립니다.
이번 업데이트 된거는
login_ban_manage.php
위 파일 올리면 사이트 접속불가 나옵니다.
-----------------------------
해당 DB테이블 삭제 후 재업로드 하니 접속 잘 됩니다.
- 영구차단
- 영구차단 아이피 리스트 해제
- 일시차단 (5분 후 자동해제)
- 성공시 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회 실패 횟수 기록이
초기화 하는 것을 추가 했으면 좋겠습니다.
오늘도 즐거운 하루 되세요...
저도 설치해보니까 로그인 성공을 해도 캡챠가 나오기 전에 로그인을 성공하면 그전에 실패 했던 로그가 디비에 그대로 남아 있네요.. ㅠㅠ 그리고 어디서든 로그인 성공을 하면 해당 아이디에 대한건 모두 지워져야 좋을꺼 같아요. 다른 아이피에서는 계속 차단 상태로 있을테니까 수동으로 문의를 받고 차단 해제를 해줘야 하는 상황이 종종 나올꺼 같습니다.