XE 1.5.3.3.을 업그레이드한 후에 로그인시 비밀번호를 실수로 잘못 입력하기만 하면 아래와 같은 이메일과 쪽지가 자동으로 보내와서 왕짜증 나기 시작함.


확인하지 않은 로그인 실패 기록이 있습니다.

  • 2012-10-05 17:35:25 -07:00
    Access IP: X.X.X.X
    Message: 잘못된 비밀번호입니다.

* 이 알림은 한번만 보입니다.
* 이 메시지는 쪽지와 이메일로 발송됩니다.
* 이 메시지는 로그인이 성공한 순간, 로그인 성공 이전 실패 기록을 모아서 발송합니다.
발송 시각: 2012-10-05 17:35:51 -07:00



물론 이렇게 자동화된 로그인 실패 기록을 이메일과 쪽지로 보내져 오면 보안상 어떤 놈이 내 계정을 해킹하려고 하는지 쉽게 알 수 있어 유용하기는 하다만 요즘 시대에는 개인 이메일 계정은 물론이고 수 없는 웹사이트에 각히 다른 아이디와 비밀번호를 이용하기 때문에  비밀번호를 실수로 잘못 입력하는 경우는 아주 드물다. 이런 이유로 이용자 입장에서 본다면 웹사이트 접속시 비밀번호를 실수로 잘못 입력하였다하여 이런 이메일과 쪽지가 계속해서 온다면 웹사이트에 불안감을 가질 수 밖에 없다는 게 나의 생각. 


자 그럼, '로그인 실패 기록'이 이메일과 쪽지로 보내지지 않게 하기 위한 방법을 알아보자:


1. 쪽지로 보내지지 않게 하기

xe - modules - member - member.controller.php 열고 line 1515 쯤에 아래의 코드를 삭제 또는 주석 처리하면 해결.


$oCommunicationController->sendMessage($args->member_srl, $args->member_srl, $title, $content, true);


2. 이메일로 보내지지 않게 하기

xe - modules - member - member.controller.php 열고 line 1525 쯤에 아래의 코드를 삭제 또는 주석 처리하면 해결.


$oMail->send();



[업데이트] XE 1.7.5.3 기준으로는 line 1773과 1784 쯤에 코드가 있습니다. 삭제 또는 주석 처리하면 해결됩니다.



[업데이트] XE 1.7.11 기준으로는 line 1791과  1802 쯤에 코드가 있습니다. 삭제 또는 주석 처리하면 해결됩니다.





Posted by esource :

최근에 웹호스팅 회사 문제로 인해서 운영하고 있는 웹사이트에 접속이 불가능해졌었다. 이번이 처음이면 그냥 넘어가는데 뭐 심심하면 이런 문제가 발생하니 나 원참...웹호스팅 회사에 수차례 전화하고 문제점을 찾으려 했지만 웹호스팅 회사에 일하는 직원들이 이유를 모르겠다는 반응 밖에 없었다. 나름 이것저것 할 수 있는 것은 다 해봤지만 전혀 문제가 해결되지 않아 결국 웹호스팅 플랜에 문제가 있는 것으로 판단하고 MySQL백업 및 서버에 있는 파일을 모두 백업한 다음 업그레이된 서버로 모두 이전 완료.  이왕 이전하고 날리친김에 XE의 최신 버전인 1.5.3.3.으로 업그레이드 했다.


서버 이전 후 속도는 나름 잘 나오고 접속에도 전혀 문제가 없어 모든 문제를 해결했다는 생각에 마음에 평온을 하지만 그것도 잠시뿐 로그인 및 첨부파일 다운로드 100%시 증발하는 문제가 있다는 것을 파악하고 깝놀...


로그인을 하려고 이용자 아이디와 비밀번호를 아무리 넣어도 그냥 페이지 갱신되는 것 처럼되어어서 files/config/에 있는 db.config.php를 수정하여 인증세션을 Y로 바꾸니 로그인이 가능해졌지만 인증세션을 N으로 설정하기만하면 로그인이 안되는 문제가 다시 발생. 


파일 첨부의 경우 파일 첨부시 100%된 다음에 바로 증발해보라눈 문제를 발견. files폴더 및 images와 이하 폴더의 권한을 707로 다 설정해두고 php5.ini 파일도 아래와 같이 올바르게 설정함. 웹호스팅 용량도 100GB넘게 남아 있는데 도무지 문제를 파악할 수 없었다. 


allow_call_time_pass_reference = On

upload_max_filesize = 10M

max_execution_time = 500

memory_limit = 32M


몇시간을 씨름하다가 첨부파일 문제를 결국 해결함! 그러나 로그인 문제는 이상하게도 인증세션만 해지하면 계속 로그인이 안됨 (물론 '로그인 유지'를 체크한 상태에서는 가능).


첨부파일 100%시 증발 해결 방법:

1. modules/editor/skins/에 있던 xppresseditor을 이용하지 말고 xpresseditor_slim를 다운받아 깐다음 게시판에서 이 editor를 사용하도록 설정함.


2. 두번째는 php5.ini의 문제였음으로 판단. 기존에 php5.ini에 원글에 처럼 넣어있었는데 정확히 무슨 이유인지는 모르지만 이 파일을 삭제하고 다른 서버에 있던 php5.ini을 대체하니 업로드가 문제가 없어짐. 다른 서버에 있던 php5.ini을 열어보니 아래와 같이 나와 있었음:


register_globals = off

allow_url_fopen = off

allow_call_time_pass_reference = On


expose_php = Off

max_input_time = 60

variables_order = "EGPCS"

extension_dir = ./

upload_tmp_dir = /tmp

precision = 12

SMTP = relay-hosting.secureserver.net

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

 



Posted by esource :


Server Error (CGI Error) 원인 및 조치하는 방법


500 Server Error (Server Error or Internal Server Error)

원인 1) syntax error 확인하기


조치방법 1) Telnet으로 웹서버상에 로그인후 쉘 상태에서 다음을 실행시킨다.

Ex) perl test.cgi (해당 cgi)

스크립트상에 syntax error가 있으면 perl interpreter 가 그 문법적인 오류에 대하여 해당 line과

함께 오류를 출력합니다. Syntax error가 있는 line번호도 같이 표시됩니다. 만약 그 line이 수정

작업을 하셨던 부분이라면 그 줄을 다시 살펴 보아서 어떤 문법적인 오류가 있는지 체크하여

보십시오.




원인 2) 퍼미션 지정이 잘못된 경우


조치방법 2) 퍼미션을 잘못 조정하면 읽기나 쓰기 또는 실행이 금지되어 cgi error가 발생합니다

기본 설정은 755이며, 수정방법은 다음과 같습니다.

Ex) chmod 755 test.cgi




원인 3) 전송방식을 잘못 지정한 경우


조치방법 3) 윈우즈(Windows 95/98/2000/NT)를 사용하시는 분은 펄스크립트를 FTP로 파일을 전송할 때 반드시 아스키 모드로 해야 합니다. 유닉스와 도스는 텍스트 파일을 표현하는 형식이 다르기 때문 에 파일포맷을 바꿔주어야 합니다. 




원인 4) 각종 변수정의가 잘못 된 경우


조치방법 4) 각종 변수정의는 각 스크립트의 압축 파일내에 포함된 readme.txt를 참조하십시오.

정의된 변수의 기정치를 사용하지 않는 경우, 즉 스크립트가 있는 디렉토리가 나머지 파일들이 

있는 디렉토리와 다른 경우나, cgiwrap을 사용하는 경우에는 특히 변수정의 에 주의해야 합니다. (readme.txt를 반드시 읽어보십시오.) 

또 변수정의 중에 특히 많이 범하기 쉬운 오류는 절대경로를 사용하는 변수입니다. 

절대경로는 말 그대로 그 시스템 내에서 그 디렉토리의 (상대경로가 아닌) 절대 경로(full path)를 의미합니다. 절대 경로는 반드시 / 로 시작해야 합니다. 이것을 빠뜨리는 것이 흔히 저지르는 일 반적인 실수중의 하나 입니다. 

즉, 반드시 '/home2/cgklyk/public_html/guestbook/guestbook.html' 등의 형태가 되어 있어야 합니다. 그리고 끝날 때는 위의 경우와 같이 마지막에 / 를 붙이지 않아야 됩니다. 




원인 5) 특수문자의 처리가 잘못된 경우


조치방법 5) Perl에서는 @ $ " ; &등의 특수문자들을 문법의 일부로 사용합니다. 펄에서 쓰는 특수문자를 브라우저에서 일반 문자로 인식 시키려면 반드시 문자 앞에 백슬래쉬(backslash, \)를 붙여줘야 합니다. 가장 흔히 에러가 나는 경우는 전자우편 주소이며 예를 들어 hosting@gabia.com은 hosting\@gabia.com으로 해주어야 하고 HTML 태그를 쓸 때,

href="http://gabia.com"이면 href=\"http://gabia.com\" 으로 해주어야 에러가 나지 않습니다




원인 6) 서버상의 perl 위치


조치방법 6) 스크립트상의 펄의 위치와 웹 서버상의 펄의 위치가 다른 경우에도 에러가 일어납니다. 스크립트상에 #!/usr/local/bin/perl등으로 perl경로가 정의되어 있으면 !/usr/bin/perl로 경로를 변경해줍니다.

 

  501 Not Implemented Error (혹은 Not Supported Error)

웹브라우즈에서 요청한 Form METHOD가 웹서버에서 허용하는 것이 아닐 경우에 발생하는 에러코드 입니다. 이 에러는 크게 두 가지의 이유로 나타납니다. 


원인 1) 시스템에서 CGI를 지원하지 못하도록 막아 두었거나 CGI설정이 제대로 되어 있지 않는 경우에 일어납니다. 


조치 1) 이것을 처리하는 방법은 자신이 시스템을 운영하거나 시스템의 구성파일을 사용할 수 있는 분이면 그 구성파일을 고쳐 주면 됩니다.

이 고치는 방법은 사용하는 웹서버에 따라서 모두 다르므로 언급하기가 힘듭니다만 NCSA 서버의 경우 를 예로 들면 구성파일이 들어 있는 디렉토리인 /usr/local/httpd/conf 디렉토리에서 srm.conf 파일 중 AddType application/x-httpd-cgi .cgi 로 설정해 주면 됩니다.

자신이 시스템을 운영하지 않고 계정을 부여 받아 사용하는 경우에는 해당 시스템의 웹마스터에게 CGI 사용여부를 문의해 보는 것이 빠를 것입니다.




원인 2) 시스템의 구성(srm.conf)파일에서 CGI에 대해 .pl로 설정되어 있으면 .cgi 확장자를 가지는 파일을 실행 시켰을 때, 이런 에러가 나게 되며 그 반대로 .cgi로 설정된 시스템에서 .pl 확장자를 가지는 파일을 실행 했을 때도 일어납니다. 또 이 경우는 일부 시스템에서는 501에러로 처리하지 않고 바로 스크립트 그 자체가 화면에 디스플레이 되는 곳도 있습니다. 


조치 2) 시스템 사용자일 경우에는 첫번째 경우처럼 구성파일(srm.conf)을 수정해 줍니다. 그렇지 않은 부분은 . pl 파일을 .cgi로, 혹은 .cgi파일을 .pl로 바꾸어 주는 것도 한 방법이 되겠습니다

  502 : Bad Gateway

요청한 웹서버가 프락시서버나 게이트웨이서버로 실행되고 있을 경우에 발생할 수 있는 에러코드

  503 : Server Unavailable

웹브라우저의 요청에 웹서버가 제대로 처리하지 못할 경우에 발생하는 에러로서 일반적으로 다른 작업처리로 인하여 요청한 처리를 하지 못할 경우에 발생하는 하게 됩니다.

  400 : Bad request

HTTP의 규약에 맞지않는 요청을 했을 경우에 발생하는 에러입니다.

  401 (Unauthorized)

이 코드는 스크립트가 웹 서버의 보호 지역에 위치해 있고 확인이 실패했음을 의미합니다. 

스크립트는 문서를 읽기 위해서 특정 IP 주소나 인터넷 호스트를 허가함으로써 보호됩니다. 즉, 사용자 이름/ 패스워드 조합으로 제한됩니다.

이 문제에 대한 해결책은 스크립트를 비보호 지역에 놓거나 보안 제한을 안정화 시키는 방법을 알아내는 것입니다.

  403 Forbidden Error

이 에러코드를 보내게 되는 경우는 다음의 두 가지 경우이며 요청한 CGI파일에 대한 권한이 없거나 실행 가능한 파일이 아님에도 실행하려 할 경우에 발생하는 에러입니다.


- 의미 : 액세스하고자 하는 파일의 사용이 금지되었음을 말함

- 원인 : 파일에 엑세스 할 수 있는 권한 문제로 사용하고자 하는 CGI 프로그램이 들어있는 디렉

   토리에 대한 사용권한이 없거나 스크립트 자체의 권한이 없는 경우에 발생 합니다.

- 수정 : 사용하고자 하는 스크립트가 있는 디렉토리를 읽을 수 있도록 chmod 751로 설정변경

   하고 스크립트 자체가 실행할 수 있도록 chmod 751로 설정을 변경해야 합니다.

  404 Not found Error

다음과 같은 두가지 경우에 나타나는 에러 입니다.


1. 요청한 cgi파일이 디렉토리에 존재하지 않는 경우에 발생하는 에러

이유 : 파일이 발견되지 않았음. 즉, 사용자가 요청한 HTML 파일이나 CGI 스크립트가 없음

원인 : 대부분의 경우 URL을 잘못 입력하였거나 링크를 잘못 걸었을 때 나타남

수정 : URL이나 링크가 제대로 되었는지 확인

2. 브라우저에서 해당 CGI파일의 URL 떠는 링크를 정확히 입력하였는데 이 ERROR이 뜬다면 이것도 퍼미션 문제중의 하나입니다. 즉 해당 CGI파일이나 디렉토리의 퍼미션이 755로 되어 있지 않기 때문이므로 퍼미션을 755로 수정하셔야 합니다.

 

  CGI의 디렉토리에 있는 index.html을 실행시켰는데 디렉토리에 있는 파일들의 

   리스트가 나열되는 경우

이 경우, 보통 해당 디렉토리의 퍼미션을 잘못 설정한 경우입니다. 해당 디렉토리를 755로 열어 줍니다. (해당 스크립트의 readme.txt파일참조)

  스크립트가 실행되지 않고 코딩내용이 그대로 화면에 나올 경우

CGI가 설정되어 있지 않거나, 또는 CGI설정시에 CGI파일을 .pl파일로 설정한 경우에 .cgi확장자를 가진 파일을 실행시키면, 그 파일을 cgi파일로 인식하지 못하므로 이렇게 나올 수가 있습니다. 그 반대로 .cgi확장자가 CGI 파일로 설정된 시스템에서 .pl 확장자를 가지는 파일을 실행했을 때도 일어납니다. (해결 방법은 위의 501 에러의 원인 2) 경우를 참조하십시오.)

  기타 upload관련

1. upload20에서 다른 스크립트는 이상이 없는데 upload.cgi만 서버에러가 나는 경우 이것은 perl과의 궁합 문제입니다. perl 5.001이나 5.002에서는 서버에러가 나며 5.003과 5.004에서는 문제가 없다고 합니다. 그러므로 perl을 업그레이드 하는 것이 이것을 해결하는 한 방법입니다. 


2. load 스크립트에서 파일의 최대 크기를 늘리고 싶은 경우 . upload 1.1에서는 cgi-lib.pl에서 $cgi_lib'maxdata 의 값을 늘려줍니다. (2의 몇 제곱으로 표시) upload20에서는 up_lib.pl에서 $file_max_size 의 값을 늘려 줍니다. 단 이 값은 post에 의해 서버로 전송되는 환경 변수들을 포함한 모든 입력 변수들의 값을 포함한 것이므로 실제 업로드 가능한 파일의 최대 크기는 이것보다 약간 적습니다.

  CGI에러코드(3자리 숫자로 된 코드)

여기서 첫 번째의 errors는 CGI의 에러뿐 아니라 홈페이지 로딩이 되지 않았을 때의 모든 에러를 포함하고 있습니다. 웹호스팅서비스에 가입한 저희 고객께서는 고객의 홈디렉토리 밑에 있는 www_log라는 디렉토리 안에 . access_log라는 파일과 함께 쌓이게 됩니다. .그리고 이 디렉토리 내에 error_log라는 파일이 있으며 CGI의 에러들은 대부분 이 파일에 그 원인 등을 저장하게 됩니다. 그리고 두 번째의 3자리로 된 에러코드는 CGI프로그램이 정상적으로 실행이 되지 않았을 때 아래의 그림과 같이 웹서버에서 웹브라우저로 에러원인이나 조치 사항들에 대한 정보를 보여주게 됩니다.


 


위의 예는 웹서버에 있는 CGI프로그램을 웹브라우저에서 실행시킨 것으로 정상적인 실행이 되지 않았다는 것과 에러조치에 필요한 정보를 보내준 것입니다. 다음은 이런 에러메시지에 포함되는 에러코드 들에 대한 설명이며 의미하는 바는 다음과 같습니다. 


- 2로 시작되는 에러코드 : 웹서버에서 정상적으로 실행이 되었을 경우에 보내지는 것이며 

- 3으로 시작하는 상태코드는 웹브라우저의 요청한 작업의 수행을 위한 다른 작업의 필요성이 있음을 알려주는 코드이므로 에러코드는 아닙니다.

- 4로 시작하는 에러코드 : 실행시킨 CGI에 에러가 발생하여 웹서버에서 웹브라우저로 보내주는 에러

- 5로 시작하는 에러코드 : 실행시킨 CGI가 웹서버에서 실행도중 발생한 에러코드



Posted by esource :

robot.txt 작성 방법

 

검색로봇이 http://google.com/과 같은 웹 싸이트를 방문하면, 먼저 http://google.com/robots.txt 파일을 호출한다. 이로써 robot.txt 파일이 발견되면 파일을 읽어 그 내용을 분석하여 로봇에 접근 권한 및 접근 가능한 경로에 대한 정보로 수집해도 되는 콘텐트만을 수집하게 된다.


로봇은 하위 디렉토리에서 robots.txt를 호출하지 않으므로 

robots.txt 파일은 반드시 웹사이트의 루트에 위치해 두어야 한다. 


robot.txt 파일에 아래와 같이 되어있다면 해당 URL에 대하여 모든 로봇에 대해 모든 경로에 접근을 차단한다는 내용이다.


# 모든 로봇(robot)들에 적용 

user-agent: * 


# 모든 페이지들의 색인(indexing) 금지

disallow: / 


# 접근을 허용하지 않을 로봇을 설정 한다.

user-agent : 


# 허용하지 않을 항목에 대해 설정 한다.

disallow : 


만약에 "disallow"를 빈 값으로 설정 할 경우, 모든 하위 경로에 대한 접근이 가능하다.

참고로 robots.txt 파일에는 최소한 한개의 "disallow" 필드(field)가 존재해야 한다.


 # /help.html과 /help/index.html 둘 다 허용 안함

disallow: /help         


# /help/index.html는 허용 안하나, /help.html은 허용 됨.

disallow: /help/   


페이지 차단하기

특정 파일 확장자를 차단 하는 방법은 robot.txt 파일에 아래와 같은 내용을 추가 하면된다.


# 루트 하위에 있는 xml 확장자를 가진 모든 파일의 색인을 거부한다.

Disallow: /*.xml$      


# 루트에 text.html 과 ?가 포함된 파일의 색인을 거부한다.

Disallow: /test.html?  





Posted by esource :


우리은행 환율표 코드를 본인이 운영하는 웹사이트에 넣으면 올바르게 환율표가 표시되어 나오지만 하나의 문제점이 있는 것 같다. 

위의 스크린샷에서 보이는 것과 같이 ActiveX control 설치 요구에 대한 메시지가 뜬다는 것! 물론 한국에 있는 모든 은행 웹사이트에서는 ActiveX control을 설치하도록하는 문구가 뜨고 이용자들이 다운받아야지만 은행 사이트를 이용할 수 있게 하는 것은 알겠지만 은행 웹사이트가 아닌 일반 웹사이트 등에 환율표 코드만 적용하는데 왜 이런 것을 설치하게 만드는지 모르겠다.

우리은행 환율표 코드를 적용하고 있는 수 많은 웹사이트에 이용자들이 방문하면 이런 것이 자꾸드면서 설치를 요구한다면 이용자 입장에서는 악성코드인 것으로 착각할 수도 있고 그로인하여 웹사이트 방문을 꺼려 할 수 있다.
 
우리은행에서 환율표 코드를 제공하므로 웹사이트 운영자들이 자신들이 운영하는 웹사이트에 환율표를 쉽게 적용할 수 있고 또 우리은행 차원에서도 이를 통하여 긍정적인 은행 홍보효과를 이룰 수 있다고는 생각되지만 상기한 문제점으로 인하여 웹사이트 운영자들이 우리은행 환율표를 이용을 꺼려 할 수 있다는 생각을 하게 된다. 




Posted by esource :


구글 크롬을 이용해서 환율표를 좀 보려고 돌아다녔는데 들어가는 곳 마다 이상하게 악성코드가 있다고 들어가지 말라는 메시지가 나오고 외환은행 웹사이트 조차도 악성코드가 있다고 들어가지 말라고 경고 메시지가 나왔다. 알고보니 외환은행에서 제공하는 무료 환율표 코드를 이용하고 있는 전세계 모든 웹사이트에 구글 크롬으로 접속하면 악성코드가 있다는 경고 메시지가 나온다는... 환율표 아이프레임에 누가 악성코드를 심어 놓은 것 같기도 한데 이로 인해서 외환은행 이미지가 안좋아지진 않을까...

혹시 웹사이트 운영하고 계신분들 중에 외환은행 환율표 코드를 이용하고 있다면 확인하시고 바로 삭제하신 후 다른 은행에서 제공하는 환율표 코드로 대체하시길.

고로 추천하는 환율표 코드는 우리은행에서 제공하는 아래의 코드! 

<iframe name=irate marginWidth=0 marginHeight=0 src="http://pot.wooribank.com/pot/pib/fx/fx/rate_banner04_01_1.jsp?rc=0" frameBorder=0 width=170 scrolling=no height=184 topmargin="0"></iframe>



 


Posted by esource :