그누보드를 사용하면서 alert 경고창으로 이런 문구를 본 적이 있을 것이다.



'정상적으로 로그인하여 접근하시기 바랍니다.'


이것은 그누보드의 관리자 화면에 접속할 때 몇몇 사람들에게 생기는 현상인데 처음 접한 사람이라면 당황할 수 밖에 없을 것이다.


뿐만 아니라 관리자 화면에 접속하고서도 메뉴 등 버튼을 눌렀을 때 로그아웃 되는 현상이 발생할 수 있다.


이것에는 여러가지 이유가 있을 수 있으나 필자가 해결한 방법은 아래와 같다.


우선 필자는 처음에 데스크톱으로 ftp를 활용하여 서버에 그누보드를 설치했는데 다른 PC와 노트북으로 사이트에 접속하여 adm페이지, 관리자화면에 접속했을 때 오류가 발생하였다.


'정상적으로 로그인하여 접근하시기 바랍니다' 라는 경고창의 소스는 admin.lib.php 파일에서 찾을 수 있는데 이를 통하여 오류의 발생 원인 또한 이 파일에 있다는 것을 알 수 있다. 참고로 admin.lib.php 파일은 gnuboard/adm 폴더에 있다.


문제가 발생하는 원인을 추측해보자면 누군가가 해킹 등 나쁜 목적으로 관리자 페이지에 접근하는 것을 막기 위해 관리자 pc와 정보가 다를 때 접근을 막는 것이 이러한 문제를 일으키는 것 같다.


해결 방법

: 오류의 원인이 되는 소스를 삭제, 변경하거나 주석처리한다.



그누보드4

admin.lib.php (변경 전)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

$admin_key = md5($member[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

admin.lib.php  (변경 후)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

// $admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']); 

$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . preg_replace('/; ; NCLIENT50\S*\)/',')',$_SERVER['HTTP_USER_AGENT']));

//출처 5.0.30 버전 보안툴로 인한 문제 해결 (정상적으로 로그인하여 접근하시기 바랍니다.)|작성자 질풍이


 그누보드5

 admin.lib.php (변경 전)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if (get_session('ss_mb_key') !== $admin_key) {


    session_destroy();


    include_once(G5_LIB_PATH.'/mailer.lib.php');

    // 메일 알림

    mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);


    alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');

}

 admin.lib.php  (변경 후)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

/*$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if (get_session('ss_mb_key') !== $admin_key) {


    session_destroy();


    include_once(G5_LIB_PATH.'/mailer.lib.php');

    // 메일 알림

    mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);


    alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');

}*/




html, css, js 파일 등 웹 서버에 파일을 올렸는데 적용이 안된 경험을 한 적이 있는가?


이런 경우에 패치된 내용을 확인할 수도 없고 원인을 모른다면 정말 답답한 상황이 찾아온다.


이러한 현상이 일어나는 이유는 방문한 페이지를 다시 접속할 때 더 빠르게 보여주기 위해서 웹 브라우저에서 웹 캐시(문서, 그림, 파일 등)를 저장하기 때문이다.


이러한 기능 덕분에 우리는 더 빠른 페이지 로딩이 가능하지만 때로는 오래된 정보를 보여주는 경우가 생기기도 한다.


앞서 말한 새로운 파일이 적용이 안된 이유도 이것 때문이다.


그래서 우리는 웹 브라우저에서 캐시를 무시하거나 지우는 방법에 대해 알아야 한다.


OS와 브라우저에 맞는 방법을 찾아 여러 가지 방법들을 해보면 좋을 것 같다.


[캐시 무시하기]


1. 인터넷 익스플로러


Ctrl + F5(새로 고침)


2_1. 구글 크롬(window)


Ctrl + F5(새로 고침)


Shift + F5(새로 고침)


2_2. 구글 크롬(mac)


Cmd + Shift + R


2_3. 리눅스


Ctrl + F5


3_1. 사파리(버전 4 이상)


Shift + 새로 고침


3_2. 사파리(버전 3 이하)


Cmd +  R


4. 오페라


Ctrl + F5(새로 고침)


Shift + F5(새로 고침)


5. 캉커러


F5(새로 고침)


[캐시 지우기 & 설정 끄기]


1. 인터넷 익스플로러


* 캐시 지우기


1. Ctrl + Shift + Del

2. '임시 인터넷 파일 및 웹 사이트' 체크

3. '삭제' 버튼


* 캐시 설정 바꾸기


도구 -> 인터넷 옵션 -> 검색 기록 -> 설정 -> 캐시 및 데이터베이스 ->'웹 사이트 및 데이터베이스 허용' 에서 변경


2. 구글 크롬


* 캐시 지우기


1. Ctrl + Shitf + Del

2. '다음 항목 삭제' 옆 목록에서 '전체' 선택

3. '캐시 삭제' -> '인터넷 사용정보 삭제'


3. 파이어폭스


* 캐시 지우기


1. Ctrl + Shift + Del

2. '삭제할 기간' -> '전체' 선택

3. '캐시' 선택 -> '지금 삭제' 클릭


* 캐시 설정 바꾸기


설정 -> 고급 -> 네트워크 -> '자동 캐시 크기 관리' 체크 후 '제한 용량' 값 '0' 으로 변경



현재 HTML5 까지 나왔지만 오래된 브라우저들은 지원하지 않는 경우가 있습니다.


그렇기 때문에 HTML5 로 만들어진 사이트를 옛날 브라우저로 접속할 경우 제작자의 의도와 맞지 않게 사이트가 구성될 수 있기 때문에 HTML5 태그 지원 여부를 확인하고 지원하지 않는 경우 추가적인 설정이 필요합니다.


IE 

Edge 

Firefox 

Chrome 

Safari 

Opera 

IOS Safari 

Opera Mini

Android Browseer 

Chrome for Android 

 

 

52 

49 

 


9.3 

 

4.4 

 

 

14 

53 

58 

 

45 

10.2 

 

4.4.4 

 

11 

15 

54 

59 

10.1 

46 

10.3 

all 

56 

59 

 

16 

55 

60 

11 

47 

11 

 

 

 

 


56 

61 

TP 

48 

 

 

 

 

 

 

57 

62 

 

 

 

 

 

 


(html5를 지원 현황)


브라우저는 자신이 인식하지 못하는 태그를 인라인 태그로 취급하기 때문에 html5 태그인 header, section, nav, article, footer 을 쓰기 위해서는


강제로 블록 레벨 태그로 설정해야합니다.


header, section, nav, article, footer{ display:block; } <!-- 태그들을 블록 레벨 태그로 만든다. -->


그리고 IE 8 이하 버전에서는 시맨틱 태그를 지원 하지 않기 때문에 자바스크립트를 이용해야한다.


<script>

document.createElement('article');

document.createElement('section');

document.createElement('aside');

document.createElement('nav');

document.createElement('header');

document.createElement('footer');

</script>


위 태그는 <head>와 </head> 사이에 넣는다.


또는 자바스크립트 파일을 이용 할 수 있는데


https://github.com/aFarkas/html5shiv 페이지 접속 후에 src 폴더를 클릭하고 html5shiv.js 파일을 저장하여 사용할 수 있다.


<!-- [if it IE 9]>

<script src="/html5shiv.js"><script>

<![endif] -->


위 태그는 head 또는 script 또는 body 에 삽입한다.

+ Recent posts