오픈 API 2014. 11-1 -
목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP 6 2.2.1 차단도구오픈 API 적용방법 6 2.2.2 차단도구오픈 API 스팸지수측정요청 6 2.2.3 차단도구오픈 API 스팸지수측정결과값 6 2.3 ASPX 7 2.2.1 차단도구오픈 API 적용방법 7 2.3.2 차단도구오픈 API 스팸지수측정요청 7 2.3.3 차단도구오픈 API 스팸지수측정결과값 7 2.4 ASP 8 2.4.1 차단도구오픈 API 적용방법 8 2.4.2 차단도구오픈 API 스팸지수측정요청 8 2.4.3 차단도구오픈 API 스팸지수측정결과값 9
1 스팸지수측정요청프로토콜 1.1. 개요 o 스팸지수측정서버를이용하여, 특정글의스팸지수를제공받을수 있으며, 이를통해스팸처리가능. 1.2. 스팸지수요청방법 o 스팸지수측정서버는 JSON 형식으로통신을하며, 아래와같이구성하 여통신한다. o 스팸지수요청 : 아래의내용중 내용, 아이피, 등록날짜 을변 경하여소켓연결을통해요청. 내용 : 스팸지수측정대상글 아이피 : 해당시스템을적용할웹서버의 IP 도메인 : 해당시스템을적용할웹서버의도메인주소 등록날짜 : 스팸지수요청시간 플러그인 : 공개형게시판 (Gnuboard, Technote, Xe, Zeroboard), 오픈API 유형 (OpenAPI(ASP), OpenAPI(ASP.NET), OpenAPI(JSP), OpenAPI(PHP)) 소켓통신을위한스팸지수측정서버도메인 : antispam.spamcop.or.kr, PORT: 8405 POST / HTTP/1.1 Host: 61.251.112.87 Connection: close Content-Type: text/json; charset=utf-8 Content-Length: 아래문자열의길이 {"methodcall":{"params":{"method":"getspamscores","contents":{"it em":[{"id":"api","content":" 내용 ","ip":" 아이피 ","pubdate":" 등록날짜 (ex: 2011-10-17 10:09:19) ","domain":" 도메인 ","plugin":" 플러그인 "}]}}}} - 3 -
o 스팸지수결과값 : 결과는아래와같은 JSON 형식으로받을수있으며 스팸지수, 스팸타입 을파싱하여사용가능. 스팸지수 : 1~100 사이의정수이며, 100 에가까울수록해당글이 스팸일확률이높음을의미하며, 이값을활용하여 스팸을처리할수있다. 스팸타입 : 성인, 유흥업소, 대리운전, 운세, 도박, 게임, 인터넷, 불법의약품, 대출, 부동산, 기타, 비스팸중한가지유형으로처리되어해당글의유형을알수있다. { " r e s p o n s e " : { " s c o r e s " : { " i t e m " : [ { " t y p e " : " 스팸타 입, " f i l t e r " : " S c o r e ", " s c o r e " : " 스팸지수 "}]},"error":"0","message":"success"}}"; - 4 -
2 게시판스팸차단도구오픈 API 활용 2.1. PHP 2.1.1. 적용방법 o 게시판스팸실시간차단시스템을사용할게시판의웹서버에해당오픈API(antispamAPI) 를이동후, 아래의방법을참고하여적용. 2.1.2. 스팸지수측정요청 o 스팸지수측정을원하는게시판코드의상단부분에다음과같이선언 ( 오픈API(antispamAPI) 위치에따라경로변경 ) include_once('antispamapi/requestspamapi.class.php'); o 스팸지수측정을원하는글을 request() 함수로측정한후, getspamscore(), getspamtype() 함수를통해스팸지수및 스팸타입획득 // 스팸지수측정요청 $content = 스팸지수측정을원하는글입력 $oreq = new RequestSpamApi(); $result = $oreq->request($content); if( $result == true ){ $spamscore = $oreq->getspamscore(); // 스팸지수 $spamtype = $oreq->getspamtype(); // 스팸타입 }else{ // 스팸측정서버오류 ( 점검중 ) } 2.1.3. 스팸지수측정결과값 o 스팸지수측정후결과값은 1~100사이의정수이며, 이값을활용하여스팸을처리할수있으며, 스팸유형은성인, 유흥업소, 대리운전, 운세, 도박, 게임, 인터넷, 불법의약품, 대출, 부동산, 기타, 비스팸중한가지유형으로처리되어해당글의유형을알수있음. - 5 -
$spamscore = $oreq->getspamscore(); // 스팸지수 $spamtype = $oreq->getspamtype(); // 스팸타입 2.2. JSP 2.2.1. 적용방법 o 게시판스팸실시간차단시스템을사용할게시판의웹서버에해당오픈API(antispamAPI.jar) 를 /WEB-INF/lib/ 로이동후, 아래의방법을참고하여적용 2.2.2. 스팸지수측정요청 o 스팸지수측정을원하는게시판코드의상단부분에다음과같이선언 <%@ page import="spamclasses.requestspamapi" %> o 스팸지수측정을원하는글을 request() 함수로측정한후, getspamscore(), getspamtype() 함수를통해스팸지수및 스팸타입획득 // 스팸지수측정요청 String message = " 스팸지수측정을원하는글입력 " int spamscore; String spamtype; RequestSpamApi spam = new RequestSpamApi(request.getRemoteAddr(),request.getRemoteHost()); if( true == spam.request(message) ){ spamscore = spam.getspamscore(); // 스팸지수 spamtype = spam.getspamtype(); // 스팸타입 }else{ // 스팸측정서버오류 ( 점검중 ) } 2.2.3. 스팸지수측정결과값 o 스팸지수측정후결과값은 1~100 사이의정수이며, 이값을활용하 여스팸을처리할수있으며, 스팸유형은성인, 유흥업소, 대리운전, - 6 -
운세, 도박, 게임, 인터넷, 불법의약품, 대출, 부동산, 기타, 비스팸 중한가지유형으로처리되어해당글의유형을알수있음. int spamscore = spam.getspamscore(); // 스팸지수 String spamtype = spam.getspamtype(); // 스팸타입 2.3. ASP.NET 2.3.1. 적용방법 o 게시판스팸실시간차단시스템을사용할게시판의웹서버에해당오픈API(antispamAPI.dll) 를참조추가후, 아래의방법을참고하여적용. 2.3.2. 스팸지수측정요청 o 스팸지수측정을원하는게시판코드의상단부분에다음과같이선언 using antispamapi; o 스팸지수측정을원하는글을 request() 함수로측정한후, getspamscore(), getspamtype() 함수를통해스팸지수및 스팸타입획득 // 스팸지수측정요청 string message = " 스팸지수측정을원하는글입력 " int spamscore; string spamtype; string ip = Request.ServerVariables["REMOTE_ADDR"]; string host = Request.ServerVariables["REMOTE_HOST"]; RequestSpamApi spam = new RequestSpamApi(ip, host); if( true == spam.request(message) ){ spamscore = spam.getspamscore(); // 스팸지수 spamtype = spam.getspamtype(); // 스팸타입 }else{ // 스팸측정서버오류 ( 점검중 ) } 2.3.3. 스팸지수측정결과값 o 스팸지수측정후결과값은 1~100 사이의정수이며, 이값을활용하 - 7 -
여스팸을처리할수있으며, 스팸유형은성인, 유흥업소, 대리운전, 운세, 도박, 게임, 인터넷, 불법의약품, 대출, 부동산, 기타, 비스팸중한가지유형으로처리되어해당글의유형을알수있음. int spamscore = spam.getspamscore(); // 스팸지수 string spamtype = spam.getspamtype(); // 스팸타입 2.4. ASP 2.4.1. 적용방법 o w3sockets를압축해제한후 SocketReg.exe를실행. 실시간차단시스템을사용할게시판의웹서버에해당오픈API(RequestSpamApi.asp) 를이동후, 아래의방법을참고하여적용. 2.4.2. 스팸지수측정요청 o 스팸지수측정을원하는게시판코드의상단부분에다음과같이선언 ( 오픈API(RequestSpamApi.asp) 위치에따라경로변경 ) <!--#include FILE="RequestSpamApi.asp"--> o 스팸지수측정을원하는글을 request() 함수로측정한후, getspamscore(), getspamtype() 함수를통해스팸지수및 스팸타입획득 // 스팸지수측정요청 Dim message message = " 스팸지수측정을원하는글입력 " Dim spamscore Dim spamtype set spam = new antispamapi If 1 = spam.antispamapi_request(message) Then spamscore = spam.getspamscore() // 스팸지수 spamtype = spam.getspamtype() // 스팸타입 Else ' 스팸실시간차단시스템점검중 End If - 8 -
2.4.3. 스팸지수측정결과값 o 스팸지수측정후결과값은 1~100 사이의정수이며, 이값을활용하 여스팸을처리할수있으며, 스팸유형은성인, 유흥업소, 대리운전, 운세, 도박, 게임, 인터넷, 불법의약품, 대출, 부동산, 기타, 비스팸 중한가지유형으로처리되어해당글의유형을알수있음. Dim spamscore, spamtype spamscore = spam.getspamscore() // 스팸지수 spamtype = spam.getspamtype() // 스팸타입 웹서버가 64bit 운영체제에설치된경우아래의추가적인과정이필요 o w3sockets 압축해제후명령창을실행하여아래의명령어실행 /Windows/System32/regsvr32.exe "( 압축파일에포함된 Socket.dll 위치 )" o 서버관리자실행 - 9 -
o IIS( 인터넷정보서비스 ) 의응용프로그램풀에서고급설정클릭 o 고급설정에서 32 비트응용프로그램사용 을 True 로설정 - 10 -