제로보드
[[파일:제로보드 글자.png|썸네일|300픽셀|제로보드(Zeroboard)]
제로보드(Zeroboard)는 한국의 개발자인 고영수가 개발한 홈페이지용 전자 게시판(BBS) 소프트웨어 또는 프레임워크이다. PHP 언어로 쓰였다. 1999년 말에 버전 1이 처음으로 배포되었고, 2001년 초에 버전 4가, 2002년 초에 버전 4.1이 발표되었다.
개요
제로보드의 개발 당시 대한민국 인터넷에서는 공용 게이트웨이 인터페이스(CGI) 기반의 스크립트와 게시판 호스팅 서비스가 주로 사용되고 있었으나, 공용 게이트웨이 인터페이스 방식의 한계점 때문에 PHP와 같은 서버 측 스크립트 언어를 사용한 게시판 프로그램에 대한 필요성이 대두되고 있었고 실제로 비슷한 소프트웨어가 많이 개발, 출시되고 있었다. 그러나 제로보드, 특히 제로보드4는 자유로운 스킨 방식 및 회원관리 기능과 같은 여러 특화된 기능을 제공해 상당한 사용자를 확보했고, 대한민국에서 PHP 기반 BBS의 대명사가 될 정도로 성장했다. 제로보드를 기반으로 한 쇼핑몰과 같은 다양한 응용이 등장하기도 했다. 그러나 제로보드4.1 이후 개발자의 개인 사정으로 개발이 계속 지연되면서 여러 문제점이 제기되기 시작했다. 일부 사용자가 비공식적으로 보안 패치를 제공했었지만 현재는 중단되었다. [1]
특징
제로보드의 형태는 댓글을 제외하면 PC통신의 게시판 형태를 거의 그대로 가져왔다. 한국은 초고속 인터넷이 다른 나라보다 빠르게 보급, 대중화되면서 인터넷의 바로 전 단계에 해당되는 PC통신이 먼저 대중화되었다. 제로보드보다 앞서 태어난 WWWBoard나 WayBoard, 워니보드 등등이 PC통신의 게시판 형태를 그대로 도입했다. 이 게시판의 보급과 인기로 인해 한국의 인터넷 게시판들은 게시물을 작성하면 그 밑으로 댓글이 달리는 형태가 주류로 자리잡게 되었다.[2]
장점
간편한 스킨(게시판의 디자인) 시스템과 회원 관리 시스템 등이 높은 인기 요인. 스킨은 구조가 간편해서, 구조를 어느 정도만 파악하고 이미지 제작 능력만 있다면 누구나 자신의 홈페이지에 맞춰서 쉽게 스킨을 새로 만들 수 있었다. 회원 관리 시스템은 동시대의 다른 게시판 프로그램에 비해 기능이 강력해서 인기가 좋았다.[2]
단점
제로보드는 보안에 취약한 구조로, 최신 보안패치를 적용하지 않거나 퍼미션 설정을 잘못 해두면 외부에서 악성코드를 삽입시키거나 인젝션을 발생시킬 수 있다. 스킨 구조의 특성상 취약한 스킨을 통하여 크래킹 사고가 빈번하게 발생한다. 개인정보 수집 분야에서는 회원가입 시 주민등록번호를 통한 중복 가입 방지 기능이 내장되어 있어 개인정보 수집을 장려한다는 비판을 받았다. 이 기능은 기본적으로 활성화되어 있지는 않지만, 제로보드4로 제작된 홈페이지들은 이 기능을 켜놓는 경우가 많았다. 개인정보수집법이 변경되면서 주민호등록번호 수집이 금지되자, 제로보드4 기반의 홈페이지들은 대부분 이 기능을 사용 중지시켰다. 또한, 제로보드는 일부 기능이 비동작하는 경우가 있다. 개발 당시 웹 표준을 고려하지 않았기 때문에 인터넷 익스플로러 10 이상이나 타사 웹 브라우저에서는 스킨에 따라서 레이아웃이 잘못 표시되고 일부 기능이 정상적으로 동작하지 않는다. DTD 선언이 아예 존재하지 않기 때문에 제로보드를 사용한 게시판들은 구성 파일들을 웹 표준 코드로 수정하지 않는 한 쿼크 모드로 표시된다. 제로보드4에는 ereg와 같은 함수들이 사용되었는데, 이러한 함수들은 php5.3부터 사용할 수 없다. 제로보드4를 php5.3 이상에서 정상적으로 구동시키려면 이러한 함수들을 preg_replace등의 대체 함수로 수정하는 과정이 필요하다. 제로보드의 라이선스 정책 변경으로 로보드4의 재배포 제도를 허가했다. 하지만, 제로보드4의 파생품을 만들어서 배포하는 경우에는 제로보드라는 명칭을 쓰지 않을것을 권장하고 있다. 제로보드4의 기본 프로그램이 공식 사이트에서 배포되는 프로그램에는 변경 사항이 없지만, 제로보드4의 저작권 문구중 삭제 가능하도록 공지한다. 또한, 스킨 제작자에게 허락을 받거나 본인의 자작 스킨이라면 저작권 문구 전체를 삭제해도 된다.[1]
- 코드 퀄리티
- 제로보드가 만들어진 당시 기준으로 코드 퀄리티가 상당히 부족하다. 중심이 되는 설계가 없고, 그때그때 원하는 기능을 덕지덕지 이어붙인 형태라 모듈화가 제대로 되어 있지 않으며, 사방에 전역 변수가 무수히 선언되어 있었다. 제로보드 4가 보안에 취약하다는 악명은 보안에 취약한 코드를 만들기 쉬운 당시 PHP의 특성과 제로보드 4의 코드 퀄리티가 빚어낸 결과이다. 제로보드 4의 강점이었던 스킨 시스템도 어떤 인터페이스를 제공하는 것이 아닌 그저 PHP코드를 집어넣는 형태로 구현되어 있다. 유저가 제작한 스킨으로 인해 보안 문제를 일으키는 경우나 제로보드가 버전업 될 때마다 동작하던 스킨이 깨지는 경우가 비일비재했다. 더 큰 문제는 제로보드 스킨 제작으로 PHP에 입문한 사람들이 많다는 것이다. 사실상 그런 사람들에게는 제로보드 4 코드가 레퍼런스인 셈인데, 코딩 습관이 제로보드 4에 맞춰지게 된다. 이로 인해 제대로 된 강좌 없이 막히는 부분이 있으면 다른 소스에서 복사 붙여넣기 하는 개발문화가 형성되었고 이들이 프로그래머로 진출하면서 비슷한 수준의 코드를 생산하게 되는 일이 많았다.
- 웹 표준 문제
- 웹 표준을 지키지 않아 모질라 파이어폭스 등의 타사 웹 브라우저 뿐만 아니라 인터넷 익스플로러 10 이상에서도 화면이 이상하게 나오거나 일부 기능이 작동하지 않는 등의 문제가 생긴다. 인터넷 익스플로러 10 이상에서는 소스를 수정해서 호환성 보기를 강제로 설정시켜도 되겠지만, 인터넷 익스플로러가 아니면 아무 소용 없다. 아니면 소스를 아예 웹 표준에 맞게 수정해도 되겠지만, 상술했듯이 보안 문제도 있기 때문에 다른 시스템으로 옮기는 게 좋다.
- 폐쇄적인 라이센스 정책
- 제로보드는 원래 라이센스 정책이 굉장히 폐쇄적이었다. 심지어 유료 버전을 사지 않으면 스킨 상에 나타나는 저작권 문구조차 못 지우게 했다. 그러나 차기 버전이 나오면서 제로보드라는 이름을 쓰지 않는 조건 하에 수정 및 재배포가 가능해졌다. 같은 시기에 저작권 문구 역시 삭제가 가능하게 바뀌었으며, 스킨 제작자에게 허락을 받았거나 자작 스킨이라면 스킨 저작권 문구도 삭제할 수 있게 바뀌었다.
- 플러그인 제작 문제
- 추가 플러그인 제작이 불편하다. 이 문제 때문에 사용자마다 제로보드의 소스가 다른 문제가 발생했다. 팁 게시판에 올라온 것을 바탕으로 수정해서 사용하던 사람이 많았기 때문. 4.1 버전 이후 업데이트가 안 되고 보안 업데이트도 어려웠던 이유 중 하나이기도 하다.[2]
비교
테크노트
테크노트는 게시판과 빌더 형태의 웹사이트 제작 솔루션으로서 일반 홈페이지 제작 및 쇼핑몰 제작 기능을 갖고 있다. 테크노트가 고정적으로 제공하는 기능만 수행하는 솔루션이 아닌, 사용자의 의도에 따라 기능 확장이 가능하도록 개발된 비정형적인 형태의 웹 토탈 솔루션이다. 웹프로그램 지식이 전혀 없어도, 웹에 대한 기초적인 이해만 갖고 있다면 초보자도 쉽게 고급 기능의 홈페이지와 쇼핑몰을 제작할 수 있다. [3]
그누보드
그누보드는 2000년대 초반부터 쓰이고 있는 PHP 기반 오픈소스 설치형 인터넷 게시판 프로그램(CMS). 홍석명이 처음 개발하였으며 "에스아이알소프트"라는 회사를 설립하여 지속적으로 버전업을 하면서 배포하고 있다. 독자적인 라이센스를 사용하고, 게시판 밑에 저작권 표기하라고 했던 제로보드와는 달리 GNU 개념의 프로그램이고, GPL 라이센스를 사용한다. 라이센스 자체가 오픈소스인데다 유저가 만든 스킨이나 플러그인에는 GPL을 적용 안해도 된다는 예외조항이 있기 때문에, 스킨이나 플러그인 개발이 많고 여러 가지 웹빌더도 나와 있다.[4]
익스프레스엔진
익스프레스엔진은 고영수가 여러 자원 봉사자들과 함께 개발한 LGPL 기반 오픈 프로젝트로, 제로보드 4나 zb5와는 별개로 완전히 새로 개발한 웹 프레임워크이다. 제로보드 4와는 달리 BBS, 블로그, 쇼핑몰, 위키 등 웹 사이트에 필요한 모든 것을 모듈로 구현해 종합적인 웹 빌더로 사용할 수 있는 프레임워크를 목표로 개발이 진행 중이다. 이전 명칭은 '제로보드 XE'였으나, 정식으로 CMS 기능을 갖춘 1.1.0 버전 안내를 공지하면서 '보드'의 개념과 상이하다며 명칭을 변경하였다. [5]
설치 및 사용방법
- 사용방법
- 제로보드XE를 사용하기 위해서는 웹서버(보통 Apache), PHP, CUBRID PHP module, CUBRID2008(같은 머신일 필요는 없다)가 설치되어 있어야 한다. 아파치 웹서버, PHP, CUBRID PHP module은 CUBRID 홈페이지의 기술 문서상에서 PHP 설치 방법을 참고한다. CUBRID의 설치는 기술 문서상의 튜토리얼을 참고한다.제로보드XE를 사용하기 위해서는 제로브도XE용 데이터베이스를 생성하여야 하며, CUBRID가 구동되어 있어야 한다. CUBRID 데이터베이스 생성은 CUBRID Manager Client를 이용하여 할 수 있으며, 이를 위해서는 CUBRID service가 구동되어있어야 하며, 리눅스의 경우 CUBRID 관리 계정으로 로그인하여 구동시켜준다.
- 데이터베이스를 CUBRID Manager Client를 이용하여 구동시켜주면 된다. 참고로 CUBRID Manager Client는 JAVA 로 개발되어 수행시키기 위해서는 JAVA RunTime환경이 필요하다. JAVA RunTime은 JAVA download 에서 내려받을 수 있으며, Java SE Runtime Environment (JRE)을 내려받으면 된다.
- CUBRID Manager Client는 리눅스의 그래픽 사용자 인터페이스 환경에서도 수행이 가능하므로, $CUBRID/cubridmanager/cmclient를 실행시킨다. 자신의 PC에 설치하여 사용하기를 원하면, CUBRID 홈페이지에서 윈도우용 제품을 내려받아 설치하면 되며, 설치 시 CUBRID Manager Client만을 설치하고자 한다면 설치 옵션에서 “CLIENT_ONLY”를 선택하여 설치하면 된다.
- 자신의 PC에서 CUBRID Manager Client 수행할 경우에는 윈도우 시스템 트레이의 CUBRID icon을 우클릭하여 보이는 메뉴에서 선택하여 수행시킨다. CUBRID Client만 설치한 경우는 시작메뉴 àCUBRID 아래 CUBRID Manager Client를 선택하여 수행시킨다.
- localhost를 선택하여 로그인 한다. 처음 설치할 경우 “연결”을 클릭하면 된다. 만약 자신의 PC 에서 리눅스 서버로 연결하는 경우에는 “새사이트”를 클릭하여 새사이트를 등록한다. 사이트명에 적당한 이름을 주고, 리눅스 서버의 아이피 주소를 주소란에 기입한 후, “연결”을 클릭하면 등록내용이 저장되면서 연결이 된다. 이후로는 사이트명에서 등록한 이름를 선택하면 된다.
- CUBRID Manager Client를 수행시킨 후, “데이터베이스 새로만들기…” 를 선택한다. 생성할 데이터베이스 이름(예, xedb)을 입력하고, 범용볼륨정보와 로그볼륨정보의 페이지 수를 10000으로 입력 후 “다음”을 선택한다. 이때 생성되는 데이터베이스의 크기는 80M(범용볼륨 40M( 10000x4096Bytes) + 로그볼륨80M(10000x4096Bytes)) 이므로 여유공간을 확인하여야 한다. 충분하지 않다면 공간을 확보하도록 한다.
- 지금까지 입력한 내용이 화면에 보이고, “확인”을 선택하면 데이터베이스가 생성된다.
- 데이터베이스가 생성되면 서버가 자동으로 구동이 되며, “dba”로 자동으로 로그인 되어있다.
- 사용자 생성
- 제로보드XE에서 사용할 데이터베이스 사용자를 생성한다. 사용자를 생성하기 위해서는 데이터베이스에 “dba"로 로그인하여야 한다. 데이터베이스 생성후 첫 로그인 이므로 “dba”의 암호는 없다. 이후 CUBRID 관리자 클라이언트를 재구동한 후, 지금 생성한 xedb 데이터베이스를 선택하면 로그인 화면이 보이게 된다. 암호가 없으므로 “dba”를 선택하고 그냥 “확인”을 선택하면 된다.
- 데이터베이스 사용자 생성을 위해 사용자를 우클릭하여 “사용자추가…”를 선택한다.
- 사용자이름(예, xe_user)과 암호를 입력하고 “확인”을 선택하면 사용자가 생성된다. 이후 제로보드XE의 데이터 관리를 위해서는 지금 생성한 사용자로 데이터베이스에 로그인하면 된다.
- 제로보드 XE 설치방법
- 제로보드XE는 제로보드 다운로드 를 통해 내려받을 수 있다. 내려받은 파일의 압축을 풀고 아파치 웹서버의 DOCUMENT_ROOT 아래에 풀어준다.
- 압축을 풀은 후 웹브라우져를 구동하여 주소창에 리눅스 서버의 주소(예, 192.168.2.1), http://192.168.2.1/zbxe 를 입력하면 제로보드 설치화면을 볼 수 있다. 만약 화면이 나오지 않는다면 아파치 웹서버 설정화일에서 더렉터리 인덱스(Directory Index) 부분에 아래와 같이 index.php 를 추가한다. 그런 다음 아파치 웹서버를 재구동시킨다.
- 만약 설치 과정 중 잘못하였을 경우에는 웹서버를 중지시킨 후 해당 폴더(xedb)를 삭제 후 다시 압축을 풀어주고 다시 진행하면 된다. “라이센스에 동의합니다”를 선택한다.
- 치조건을 확인하는 화면이 나온다. 내용을 한번보고 "설치를진행합니다"를 선택한다.
- FTP 정보 입력창이 나오는데 무시하고 그냥 “등록”을 선택한다.
- 다음으로 데이터베이스를 선택하는 화면이 나온다. 현재 서버에서 접속가능한 데이터베이스에 대한 목록을 보여준다. CUBRID 의 경우 CUBRID PHP module 이 설치되어있어야만 목록에 보인다. “cubrid”를 선택한 후 “설치를 진행합니다”를 선택한다.
- 데이터베이스와 관리자에 대한 정보를 입력한다. DB호스트네임에는 리눅스 서버의 IP(예, 192.168.2.1)를 입력하고, DB Port는 33000번을 그대로 둔다. DB아이디는 데이터베이스 생성후 생성한 사용자인 “xe_user”를 입력하고, DB비밀번호는 사용자암호를 입력하고, 데이터베이스에는 생성한 데이터베이스의 이름은 “xedb”를 입력한다. 관리자정보에서 아이디는 그대로 두고, 비밀번호, 이름, 닉네임, 이메일 주소를 입력한다.
- 환경설정에서 “rewire mode 사용” 선택이 있는데, 이는 웹서버에서 해당 기능이 설치되어있어야 가능하므로 설치된 경우에만 선택한다. 확실히 모르겠으면 선택하지 않는다. “time zone”은 한국의 시간대를 설정하는 것으로 화면에 보이는 “GMT +09:00…” 을 선택하면 된다. 모든 내용을 입력 후 “등록”을 선택한다.
- 정상적으로 입력되었으면 설치진행 메시지가 보인 후, 설치 완료 메시지가 보인다.[6]
논란
- 취약점 노출
취약점이 공개된 국내 웹 게시판 프로그램은 PHP기반으로 제작된 익스프레스엔진(eXpress Engine), 제로보드, 그누보드(gnuboard), 테크노트(Technote) 등이 있는데, 이들 웹 게시판 프로그램들은 대부분 국내에서 홈페이지 제작이나 인터넷 쇼핑몰 개발에 이용되고 있어 피해가 더욱 증폭되었다. 게시판 프로그램 자체 취약점은 해당 프로그램을 이용한 모든 사이트에 적용되기 때문이다. 웹 게시판 프로그램의 취약점을 이용해 계임계정 탈취 악성코드를 삽입하는 사례가 증가하고 있어 주의가 요구된다. 주로 발견되는 취약점은 CSRF(Cross-site request forgery)/XSS(Cross-site scripting)이며 특정 웹 게시판 프로그램에서는 SQL인젝션 취약점이 나타나기도 한다. CSRF 취약점을 이용한 공격 방식은 인증 우회 취약점 이용해 파일을 관리자 권한을 획득한 후, 관리자 메뉴에서 PHP 코드가 포함된 JPG 파일을 업로드하여 업로드 한 파일에 악성코드 스크립트 삽입이 가능한 SQL injection 쿼리 입력하는 방식으로 진행된다.[7]
- 악성코드 유포
2016년 4월 11일, 제로보드를 이용한 악성코드 유포가 활발한 것으로 나타났다. 특히, 제로보드 게시판 소스에 단축URL 경유지가 삽입되어 있어 이용자들의 웹사이트 이용시 주의가 요구된다. 단축URL를 사용하지 않는 경우도 있으며, 이에 대해 제로서트 측은 “공개 게시판인 제로보드를 이용한 홈페이지의 악성코드 유포 활동이 활발해지고 있다”며 “여전히 국내 다수 홈페이지에서는 제로보드 게시판을 이용하고 있으며, 과거처럼 제로보드 게시판 소스에 단축 URL 경유지가 삽입되어 있는 경우가 많았다”고 밝혔다. [8]
단축 URL : http://url[.]ms/xxxxx, http://url[.]cn/xxxxxxx
각주
- ↑ 1.0 1.1 〈제로보드〉, 《위키백과》
- ↑ 2.0 2.1 2.2 〈제로보드〉, 《나무위키》
- ↑ 테크노트 공식 홈페이지 - https://www.technote.co.kr/php/technote1/home.php
- ↑ 〈그누보드〉, 《나무위키》
- ↑ 〈XpressEngine 익스프레스엔진〉, 《위키백과》
- ↑ admin, 〈제로보드 XE 사용하기〉, 《큐브리드》, 2008-11-21
- ↑ 오병민 기자, 〈[웹 게시판 게임계정탈취 악성코드 확산하는 웹 게시판]〉, 《시큐리월드》, 2011-01-11
- ↑ 김경애 기자, 〈플래시 제로데이 취약점 이용한 악성코드 유포 外〉, 《시큐리월드》, 2016-04-12
참고자료
- 〈제로보드〉, 《위키백과》
- 〈제로보드〉, 《나무위키》
- admin, 〈제로보드 XE 사용하기〉, 《큐브리드》, 2008-11-21
- 제로보드 다운로드 - https://www.xpressengine.com/
- 오병민 기자, 〈[웹 게시판 게임계정탈취 악성코드 확산하는 웹 게시판]〉, 《시큐리월드》, 2011-01-11
- 김경애 기자, 〈플래시 제로데이 취약점 이용한 악성코드 유포 外〉, 《시큐리월드》, 2016-04-12
- 테크노트 공식 홈페이지 - https://www.technote.co.kr/php/technote1/home.php
- 〈그누보드〉, 《나무위키》
- 〈XpressEngine 익스프레스엔진〉, 《위키백과》
같이 보기
이 문서는 로고 수정이 필요합니다.