<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[TNF : Tatter Network Foundation forum - 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
		<link>http://forum.tattersite.com/ko/viewtopic.php?id=263</link>
		<description><![CDATA[혹시라도 플러그인과 같은 것들이 가질 수 있는 문제 의 최근 RSS 글들.]]></description>
		<lastBuildDate>Tue, 30 May 2006 02:47:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=3074#p3074</link>
			<description><![CDATA[<p>가장 문제는 보안 위협이겠고 다른 하나는 새로운 버전의 태터툴즈가 배포되었을 때 이전 버전에서의 마이그레이션이 지원이 안되는 경우가 될 것 같네요.&nbsp; 이용자가 많다면 &quot;Don&#039;t worry. Be Happy!!&quot; ^^</p><p>이 두가지 문제는 확실히 알려야 할 것 같은데 &quot;알림&quot;과 &quot;경고&quot;는 제 경험상 어지간히 알려서도 잘 안먹히더군요. </p><p>&quot;완전환상 플러그인&quot;이 많이 많이 나오기를 기대합니다. ^^</p>]]></description>
			<author><![CDATA[null@example.com (광종)]]></author>
			<pubDate>Tue, 30 May 2006 02:47:40 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=3074#p3074</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=3008#p3008</link>
			<description><![CDATA[<p>플러그인 인증체계에 대해서는 지난번 TnF 모임에서도 논의가 되었습니다..(그만큼 이슈라는.. 후후)</p><p>회의록 참고 : <a href="http://www.tattertools.com/ko/forum/viewtopic.php?id=447">http://www.tattertools.com/ko/forum/vie … php?id=447</a></p><p>이 의견이 최종 fix된 것은 아닙니다.. TnF 님들의 다양한 의견들이 최종적으로 합리적인 인증체계를<br />만들어 낼 수 있을 것 같네요.. 그런 의미에서 의견들 팍!팍! 주세요.. <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (맥퓨처)]]></author>
			<pubDate>Mon, 29 May 2006 11:13:25 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=3008#p3008</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2999#p2999</link>
			<description><![CDATA[<p>플러그인 제작시 왠만하면 DB create/modify는 피해야하겠지만 원하는 기능을 표현하려고 하다보니<br />피치못해 넣는것 같습니다. 저 또한 몇개의 플러그인에 DB create를 했었지만 크게 문제가 될것은 없으리라 봅니다.<br />위에서 검증부분에 대해 많은 언급이 있었는데, 당연히 있어야 한다고 봅니다. 현재 1.0코어의 초기 단계지만<br />점점 더 많은 플러그인들이 쏟아져 나올것입니다. 이에 대한 검증 체계를 안잡아 준다면 당연히 난잡해지리라 생각합니다.<br /><strong>맥퓨처님</strong>께서 언급해주신 검증체계처럼 여러각도에서 검증할수 있도록 자리잡아야 할것입니다.<br />그러나, 인증 절차에서 무조건적 자름은 없어야 될것 같구요. 한 블로거가 정말 좋은 플러그인을 선보였는데<br />인증에 적합하지 않다고 등록을 안시켜준다면 조금은 안좋게 생각하겠죠. 그에 대한 뭐랄까 플러그인 등급체제를<br />두어 &#039;안심/보통/낮음&#039; 이런식으로 해주는 것도 좋을것이구요. 진짜 악성 플러그인이라면 제작자에게 일종의 주의성<br />메세지(메일/쪽지)등을 보낼수 있으면 좋겠구요. 또한 부족한 플러그인에 대해서는 서포터를 하여 모두들 사용할수<br />있게 해주는것두 좋을것 같습니다. 물론 위에서 모두 언급한 내용이지만요~~<br /><strong>daybreaker님</strong> 께서 말씀하신것처럼 플러그인 등록 게시판 또한 레이아웃이 변경되어야 할듯합니다.<br />추후 검증 체계가 잡힌 다음이겠죠.<br />------------------------------------------------------------------------------------------------------------------<br />번호 | 　　　　　　제목　　　　　 | 사용가능브라우져 | 인증상태 | 제작자 | 날짜 | 추천 | 힛트<br />------------------------------------------------------------------------------------------------------------------<br /> 123　플러그인플러그인플러그인　　　ⓘ　ⓕ　ⓞ　　　　　ⓨ　　 아무개&nbsp; &nbsp;05/29　5　　5<br />------------------------------------------------------------------------------------------------------------------</p><p>위와같은 레이아웃으로 아이콘화 하여 표시해주면 플러그인을 사용하고자하는 블로거님들께서 한눈에 보기<br />좋을것 같습니다.</p><p>위에서 언급한 내용을 다시금 얘기한것 같습니다. 1.0.6버젼이후 더 확고한 문제들이 언급될것으로 보입니다.</p><p>TnF님분들 좋은 저녁시간 되세요.:cool:</p>]]></description>
			<author><![CDATA[null@example.com (jparker)]]></author>
			<pubDate>Mon, 29 May 2006 08:45:53 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2999#p2999</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2901#p2901</link>
			<description><![CDATA[<div class="quotebox"><cite>JWC 작성:</cite><blockquote><p>저도 가장 불안히 생각하는 것중 한가지 입니다.<br />어떤 플러그인을 다운 받아서 설치했는데 DB에 테이블을 생성하는걸 보고 겁이나더군요.<br />이거 악용만하면 데이터도 마음대로 수정하거나 파괴할 수 있겠구나 하고요.</p></blockquote></div><p>DB modify 명령이 플러그인 자체에서 동작하는 방식은 옳지 않은 것 같습니다. 만약 DB modify가 필요하다면 해당 계정의 소유자가 DB 변경에 대하여&nbsp; 이해한 상태에서 &quot;직접&quot; 변경해야 겠지요.&nbsp; 그런데, 테이블 생성구문까지 허용되고 있는 것은 몰랐네요.. ^^;;</p>]]></description>
			<author><![CDATA[null@example.com (광종)]]></author>
			<pubDate>Sun, 28 May 2006 12:10:02 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2901#p2901</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2844#p2844</link>
			<description><![CDATA[<p>코드안에 플러그인 검증 루틴을 넣는다면 여러가지 제약이 심해져서 다양한 플러그인이 나오기만 어려워지는건 아닌가<br />하는 우려가 들면서도... 또, 그렇게 안하는 경우에는 플러그인 검증을 거치는 것이 좋을 것 같다는 생각이 들면서도...<br />이런 생각들도 듭니다...</p><p>사실 태터툴즈 공식 홈피에 플러그인을 제작하여 올리시는 분들 중에<br />그런 악의를 가지고 공개하실 분은 거의 없겠죠... 소스까지 다 공개되는데<br />오픈소스 특성상 악의를 가지고 무언가를 공개하시는 분들은 극소수일거란 생각이 듭니다.</p><p>정말로 문제되는 것은 진정한 악인으로서의 의도를 가지고 공식 홈페이지가 아닌 곳에서<br />비공개로 배포하는 것이죠...&nbsp; 마치 와레즈에서 비공식으로 크랙에 바이러스를 묻히는 것처럼요... ^^;</p><p>이런 바이러스에 감염되는 건 사실상 사용자의 책임이 크다고 봅니다.</p><p>그런데 또 설치형 블로그를 사용하시는 분들 중에서는 이정도는 가려서 쓰실 능력이 충분하시다고 생각을 합니다.<br />그렇지 않은 분들은 Tistory 나 이노리, 오마이뉴스 블로그를 사용하지 않을까요...<br />당연히 서비스형 태터툴즈에서 제공되는 플러그인들은 기본적으로 검수를 거친 플러그인 들일테니까요. ^^;</p><p>하여간 참 어려운 문제네요... <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (kebie)]]></author>
			<pubDate>Sun, 28 May 2006 04:36:58 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2844#p2844</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2838#p2838</link>
			<description><![CDATA[<p>뉴클리어스의 경우는 플러그인이 개발되면 우선 T&amp;F와 같은 플러그인 포럼에 공개하게 됩니다. 그럼 포럼 이용자들이 이 플러그인을 사용해보고 문제점도 지적하는등 검증 절차를 거칩니다. 이 절차이후에 플러그인이 공식플러그인 페이지에 공개됩니다. </p><p>물론 뉴클리어스의 경우 플러그인도 GPL이 적용돼서 누구나 기존의 플러그인을 이용해서 자신에게 맞거나 필요로 하는 플러그인을 제작합니다. 또 개발이 중단되면 다른 사람이 이걸 이어받아서 계속 개발하거나 새로운 플러그인이 기존의 플러그인을 대체하기도 하고요.</p><p>태터도 이런 자연스러운 검증절차를 두면 좋겠습니다.</p>]]></description>
			<author><![CDATA[null@example.com (laotzu)]]></author>
			<pubDate>Sun, 28 May 2006 02:02:17 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2838#p2838</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2118#p2118</link>
			<description><![CDATA[<p>맥퓨처님이 제안하신 체계중 2,4번이 마음에 드네요 <img src="http://forum.tattersite.com/ko/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>개별 플러그인에 대해서 TnF certificated plugin 으로 안정성이나 보안, 버전 적합성등의 검증을 거쳐 인증을 부여하고 더불어 일종의 TnF partner 형태로 특정 제작자 그 자체의 신뢰도를 인정하여 그로부터 나오는 플러그인에 파트너 인증을 부여하는 편이 괜찮다 봅니다. 이러한 인증작업을 얼마전에 제기된 TnF 체계화와 더불어 TnF 의 역할의 하나로 자리잡아도 괜찮겠지요.</p><p>TnC 는 platform 으로서의 TT 개발에 집중하고, 플러그인이나 스킨등 application 의 측면은 TnF 가 맡는다면 업무의 무게도 어느정도 분할이 되겠지요.</p>]]></description>
			<author><![CDATA[null@example.com (laziel)]]></author>
			<pubDate>Tue, 16 May 2006 08:37:17 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2118#p2118</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2115#p2115</link>
			<description><![CDATA[<div class="quotebox"><cite>daybreaker 작성:</cite><blockquote><p>플러그인을 TNF/TNC에서 검증하여 안전하다고 확인이 되면 일종의 인증 마크를 달고 배포할 수 있도록 하는 것도 좋을 것 같습니다. 현재의 제로보드 게시판 형식으로 된 플러그인 게시판을 좀더 뽀대(-_-)나게 바꾸어서(Firefox 플러그인 사이트 정도만 되어도 괜찮을 듯..;; ) 개발자들이 거기에 자신의 플러그인이 인증된 채 배포되는 걸 자랑스럽게 여기도록 유도(..)하는 것도 좋을 것 같습니다.</p></blockquote></div><p>검증작업에 대한 TNF/TNC의 업무부하가 눈에 보입니다.. <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /> 농담이구요..</p><p>제작한 플러그인을 자유롭게 올릴 수 있는 현 체계와 검증작업을 도입한 인증체계 사이의 장단점에 대해<br />TNF에서 한번 논의를 해보면 어떨까 싶군요.. </p><p>위 글들을 읽고 몇가지 생각해 본 배포체계를 적어봅니다..</p><p>1. 플러그인 인증체계 도입<br /> - 개발자가 제작한 플러그인에 대해 TNF나 TNC에 인증요청을 한 후 인증이 완료되면 플러그인 게시판(사이트)에<br />&nbsp; &nbsp;올려짐.. 인증이 안된 플러그인에 대해서는 내용조회만 가능..<br />&nbsp; &nbsp;외부 업체들 중에서도 플러그인 인증 요청을 한 후 정식적으로 인증된 후에 배포되는 사례들이 있습니다..</p><p>2. 현행 플러그인 배포체계 + 인증체계<br />&nbsp; - 현 체계처럼 자유롭게 제작한 플러그인을 배포할 수 있도록 합니다.. 대신 인증체계를 믹스하여 TNF/TNC에 의해<br />&nbsp; &nbsp; 공식적으로 인증된 플러그인에 대해서는 인증마크를 부여하여 사용자에게 플러그인의 사용에 대한 선택권한을<br />&nbsp; &nbsp; 넘겨줍니다..</p><p>3. 현행 플러그인 배포체계 + 사용자 레벨제 도입<br />&nbsp; - 현행 플러그인 배포체계에 실재 플러그인을 사용해 본 유저들에 의한 평가체계(별점제 등)를 도입하여<br />&nbsp; &nbsp; 플러그인에 대한 안정성을 사용자들에게 판단하도록 합니다.. TNF/TNC의 업무부하를 줄일 수 있는 장점이<br />&nbsp; &nbsp; 있습니다.. 대신 악의적인 의도로 작성된 플러그인에 대해 사전 제약을 줄 수 없는 단점이 존재합니다..</p><p>4. 플러그인 제작자 인증체계<br />&nbsp; - 플러그인의 제작자들에 대한 인증체계를 도입하여(오픈마켓의 셀러들에 대한 등급제같은..) 공식적으로<br />&nbsp; &nbsp; 인증이 된 제작자들의 플러그인은 안심하고 받아서 설치할 수 있는 체계를 도입합니다.. 인증된 제작자의 <br />&nbsp; &nbsp; 선정에 대한 기준이 먼저 마련되어야 하고 제작자 역시 본인이 개발하여 배포하는 플러그인에 대한 책임을 <br />&nbsp; &nbsp; 질 수 있는 환경이 조성되어야 하겠죠..</p><p>일단 플러그인을 검증하는 기술적인 내용에 대해서는 TNF 전문가분들에게 떠 넘기고.. <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /> 머리속에서 <br />생각나는대로 한번 적어봤습니다..</p>]]></description>
			<author><![CDATA[null@example.com (맥퓨처)]]></author>
			<pubDate>Tue, 16 May 2006 07:22:25 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2115#p2115</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2114#p2114</link>
			<description><![CDATA[<p>플러그인을 TNF/TNC에서 검증하여 안전하다고 확인이 되면 일종의 인증 마크를 달고 배포할 수 있도록 하는 것도 좋을 것 같습니다. 현재의 제로보드 게시판 형식으로 된 플러그인 게시판을 좀더 뽀대(-_-)나게 바꾸어서(Firefox 플러그인 사이트 정도만 되어도 괜찮을 듯..;; ) 개발자들이 거기에 자신의 플러그인이 인증된 채 배포되는 걸 자랑스럽게 여기도록 유도(..)하는 것도 좋을 것 같습니다.</p>]]></description>
			<author><![CDATA[null@example.com (daybreaker)]]></author>
			<pubDate>Tue, 16 May 2006 06:08:12 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2114#p2114</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2111#p2111</link>
			<description><![CDATA[<div class="quotebox"><cite>CN 작성:</cite><blockquote><p>관리하기 쉽게 인터페이스를 갖추는 것도 하나의 방법입니다.</p><p>표준적인 인터페이스를 통해서 플러그인의 개발자가 직접 위험 수위나 디테일한 내용을 (여기서는 DB의 수정 정도 되겠네요.) 표기하는 방법을 제시하고 사용자가 확인할 수 있게 하는 것입니다. 세부적인 방법은 여러가지가 있겠습니다만 한 가지 방법은 주석이 무조건 일정한 형태를 취하도록 하는 것입니다. 형태에 적합할 때 주석의 내용을 유저에게 표기해 주게 하고 적합하지 않을 때는 플러그인은 자동 deactivate되면 될 것입니다.</p><p>관리자는 개발자가 표기한 위험수위와 디테일한 내용을 확인하고 그것이 사실과 동일할 때만 플러그인을 공개합니다. 더 나아가 확장 등록자에 대해서 화이트 리스트나 블랙 리스트를 관리할 수도 있겠지요.</p><p>이 방법은 몇가지 이점이 있습니다.</p><p>1. 개발자가 제시한 정보가 관리자의 체크리스트가 된다.<br />2. 개발자가 어느정도 보안에 대해 책임을 느끼게 된다.<br />3. 항목과 다를 때 유저나 관리자가 따질 근거가 된다.</p></blockquote></div><p>지금 구현된 형태가 그러한 형태입니다. <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /> index.xml에 이 플러그인의 동작 범위에 대하여 적도록 되어 있습니다.</p><p>문제는 제작자 분들이 저 목록을 항상 형식에 맞게 적어주시지 않는다는 점이죠. 결국 말씀하신대로 플러그인을 설치하는 관리자분들이 직접 체크를 하시거나, 아니면 플러그인이 올라오면 보안에 관련된 내용을 체크하는 팀을 만들거나 해야 할 것 같습니다.</p>]]></description>
			<author><![CDATA[null@example.com (inureyes)]]></author>
			<pubDate>Tue, 16 May 2006 03:56:18 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2111#p2111</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=2096#p2096</link>
			<description><![CDATA[<p>관리하기 쉽게 인터페이스를 갖추는 것도 하나의 방법입니다.</p><p>표준적인 인터페이스를 통해서 플러그인의 개발자가 직접 위험 수위나 디테일한 내용을 (여기서는 DB의 수정 정도 되겠네요.) 표기하는 방법을 제시하고 사용자가 확인할 수 있게 하는 것입니다. 세부적인 방법은 여러가지가 있겠습니다만 한 가지 방법은 주석이 무조건 일정한 형태를 취하도록 하는 것입니다. 형태에 적합할 때 주석의 내용을 유저에게 표기해 주게 하고 적합하지 않을 때는 플러그인은 자동 deactivate되면 될 것입니다.</p><p>관리자는 개발자가 표기한 위험수위와 디테일한 내용을 확인하고 그것이 사실과 동일할 때만 플러그인을 공개합니다. 더 나아가 확장 등록자에 대해서 화이트 리스트나 블랙 리스트를 관리할 수도 있겠지요.</p><p>이 방법은 몇가지 이점이 있습니다.</p><p>1. 개발자가 제시한 정보가 관리자의 체크리스트가 된다.<br />2. 개발자가 어느정도 보안에 대해 책임을 느끼게 된다.<br />3. 항목과 다를 때 유저나 관리자가 따질 근거가 된다.</p>]]></description>
			<author><![CDATA[null@example.com (CN)]]></author>
			<pubDate>Mon, 15 May 2006 19:33:41 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=2096#p2096</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=1663#p1663</link>
			<description><![CDATA[<div class="quotebox"><cite>Peris 작성:</cite><blockquote><p>현재의 플러그인 제작 방식을 그대로 사용한다면야 악의적인 코드를 찾기란 무리겠죠.<br />BlogIcon 플러그인을 기준으로 제가 생각하는 대략적인 구상을 말해보겠습니다.</p><p>components/Tattertools.Plugins.php 파일<br /></p><div class="codebox"><pre><code>class Plugins {
    var $owner;
    var $database;
    ...
    function tt_empty($v) {
        return empty($v);
    }

    function tt_strlen($v) {
        return strlen($v);
    }
    ...
}</code></pre></div><p>Plugins/BlogIcon/index.php<br /></p><div class="codebox"><pre><code>class BlogIcon extends Plugins {
    var $target;
    var $mother;

    function BlogIcon($target, $mother) {
        $this-&gt;__construct($target, $mother);
    }

    function __construct($target, $mother) {
        $this-&gt;target = $target;
        $this-&gt;mother = $mother;
    }

    function BlogIcon_main() {
        if (Plugins::tt_empty($this-&gt;mother[&#039;homepage&#039;]))
            return $this-&gt;target;
        $slash = ($this-&gt;mother[&#039;homepage&#039;]{Plugins::tt_strlen($this-&gt;mother[&#039;homepage&#039;]) - 1} == &#039;/&#039; ? &#039;&#039; : &#039;/&#039;);
        return &quot;&lt;img src=\&quot;{$this-&gt;mother[&#039;homepage&#039;]}{$slash}index.gif\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; onerror=\&quot;this.parentNode.removeChild(this)\&quot;/&gt; $this-&gt;target&quot;;
    }
}</code></pre></div><p>Plugins/BlogIcon/index.xml<br /></p><div class="codebox"><pre><code>...
    &lt;listener event=&quot;ViewCommenter&quot;&gt;BlogIcon::BlogIcon_main&lt;/listener&gt;
    &lt;listener event=&quot;ViewGuestCommenter&quot;&gt;BlogIcon::BlogIcon_main&lt;/listener&gt;
...</code></pre></div><p>상당히 노가다이긴 하지만..; Plugins class에 사용 가능한 함수들을 일일이 등록시켜주는 거죠.;;<br />(모듈화된 상태기때문에 개별적으로 업데이트가 이루어지면 되니 큰 문제는 아니라고 생각중)<br />이렇게되면 validate 시에 Plugins class를 거치지 않는 함수를 잡아내는건 쉽겠죠.<br />쿼리같은 경우는 아래처럼 대충 처리하고 drop같은건 지원을 안하면 되겠죠.;<br />(예전에 사용하던 MySQL class 발췌; )<br /></p><div class="codebox"><pre><code>function mysql_select($table, $where, $field = &#039;*&#039;) {
    return mysql_query(&quot;SELECT &quot;.$field.&quot; FROM &quot;.$table.&quot; &quot;.$where);
}</code></pre></div><p>헛점이 너무 많은가요? -_-;;</p></blockquote></div><p>이것은 인터페이스만을 제한하는 것으로, 앞서 논의된 문제 해결과 관련이 없습니다.<br />이렇게 하면 플러그인 개발이 더 힘들어지기 때문에 지금의 간단한 구조를 채택한 것입니다.</p>]]></description>
			<author><![CDATA[null@example.com (PAPACHA)]]></author>
			<pubDate>Tue, 09 May 2006 02:44:42 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=1663#p1663</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=1649#p1649</link>
			<description><![CDATA[<p>별로 기술적이지 않은 방법으로 접근해보자면..;<br />지금처럼 제로보드 게시판을 사용하는게 아닌 플러그인 센터 같은걸 만들어서 플러그인은 그쪽에 등록하게 하고<br />사용자들이 등록된 플러그인에 대해서 평판을 매기는거죠.. 사용자들이 플러그인에 대한 평가를 입력하기 귀찮을 수도 있으니 플러그인이 돌아가고 있는 블로그 갯수, 이 블로그들이 플러그인을 문제없이 사용하고 있는 기간 뭐 이런 것들을 수집해 이용할 수도 있겠구요..<br />그럼 태터 관리자의 플러그인 화면에서 버튼같은걸 누르면 그 플러그인에 대한 평판, 플러그인을 사용중인 블로그 수, 사용자 코멘트같은걸 보여줘서 판단하게 하고 새로 올라와서 정보가 없거나 플러그인 센터가 아닌 곳에서 배포된 플러그인이라면 &#039;이 플러그인은 검증되지 않았으니 블로그 날아가도 난몰라 욜렐랄루~~&#039; 하고 메세지를 보여줄 수도 있겠고.. 이렇게 되면 플러그인 원격 업데이트 같은 것도 가능하겠네요..</p><p>음.. 그냥 index.php 체크하는게 더 쉬울려나요?;</p>]]></description>
			<author><![CDATA[null@example.com (crizin)]]></author>
			<pubDate>Tue, 09 May 2006 00:34:53 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=1649#p1649</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=1647#p1647</link>
			<description><![CDATA[<p>음.. 뭔가 굉장한 논의가 오고갔었군요 ;;<br />제가 validator에 대한 글을 올릴땐 &quot;플러그인이 위험한지&quot;를 검사한다기보단<br />&quot;플러그인의 위험 가능성&quot;을 체크하는 의미로 생각했었습니다.<br />즉, &quot;위험할 수 있다&quot;를 경고하자는거였지요.</p><p>생각은 해놓고.. 내용 괜히 길어질까봐 올리지않았던 내용입니다만<br />user_func나 include등이 발견되면 &quot;외부 코드 호출 발견&quot;<br />fopen 같은건 &quot;파일 입출력 발견&quot;<br />exit; 같은것도 그렇고요..</p><p>진짜 플러그인이 위험한지를 검증하는걸 만들면.. 그것 자체로도 태터 이상의 프로젝트가 될것 같습니다.</p>]]></description>
			<author><![CDATA[null@example.com (Kotoko)]]></author>
			<pubDate>Tue, 09 May 2006 00:14:16 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=1647#p1647</guid>
		</item>
		<item>
			<title><![CDATA[RSS 답글: 혹시라도 플러그인과 같은 것들이 가질 수 있는 문제]]></title>
			<link>http://forum.tattersite.com/ko/viewtopic.php?pid=1632#p1632</link>
			<description><![CDATA[<p>현재의 플러그인 제작 방식을 그대로 사용한다면야 악의적인 코드를 찾기란 무리겠죠.<br />BlogIcon 플러그인을 기준으로 제가 생각하는 대략적인 구상을 말해보겠습니다.</p><p>components/Tattertools.Plugins.php 파일<br /></p><div class="codebox"><pre><code>class Plugins {
    var $owner;
    var $database;
    ...
    function tt_empty($v) {
        return empty($v);
    }

    function tt_strlen($v) {
        return strlen($v);
    }
    ...
}</code></pre></div><p>Plugins/BlogIcon/index.php<br /></p><div class="codebox"><pre><code>class BlogIcon extends Plugins {
    var $target;
    var $mother;

    function BlogIcon($target, $mother) {
        $this-&gt;__construct($target, $mother);
    }

    function __construct($target, $mother) {
        $this-&gt;target = $target;
        $this-&gt;mother = $mother;
    }

    function BlogIcon_main() {
        if (Plugins::tt_empty($this-&gt;mother[&#039;homepage&#039;]))
            return $this-&gt;target;
        $slash = ($this-&gt;mother[&#039;homepage&#039;]{Plugins::tt_strlen($this-&gt;mother[&#039;homepage&#039;]) - 1} == &#039;/&#039; ? &#039;&#039; : &#039;/&#039;);
        return &quot;&lt;img src=\&quot;{$this-&gt;mother[&#039;homepage&#039;]}{$slash}index.gif\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; onerror=\&quot;this.parentNode.removeChild(this)\&quot;/&gt; $this-&gt;target&quot;;
    }
}</code></pre></div><p>Plugins/BlogIcon/index.xml<br /></p><div class="codebox"><pre><code>...
    &lt;listener event=&quot;ViewCommenter&quot;&gt;BlogIcon::BlogIcon_main&lt;/listener&gt;
    &lt;listener event=&quot;ViewGuestCommenter&quot;&gt;BlogIcon::BlogIcon_main&lt;/listener&gt;
...</code></pre></div><p>상당히 노가다이긴 하지만..; Plugins class에 사용 가능한 함수들을 일일이 등록시켜주는 거죠.;;<br />(모듈화된 상태기때문에 개별적으로 업데이트가 이루어지면 되니 큰 문제는 아니라고 생각중)<br />이렇게되면 validate 시에 Plugins class를 거치지 않는 함수를 잡아내는건 쉽겠죠.<br />쿼리같은 경우는 아래처럼 대충 처리하고 drop같은건 지원을 안하면 되겠죠.;<br />(예전에 사용하던 MySQL class 발췌; )<br /></p><div class="codebox"><pre><code>function mysql_select($table, $where, $field = &#039;*&#039;) {
    return mysql_query(&quot;SELECT &quot;.$field.&quot; FROM &quot;.$table.&quot; &quot;.$where);
}</code></pre></div><p>헛점이 너무 많은가요? -_-;;</p>]]></description>
			<author><![CDATA[null@example.com (Peris)]]></author>
			<pubDate>Mon, 08 May 2006 13:52:07 +0000</pubDate>
			<guid>http://forum.tattersite.com/ko/viewtopic.php?pid=1632#p1632</guid>
		</item>
	</channel>
</rss>
