1

주제: 스킨/플러그인 자동 업로드 기능 추가

매번 태터툴즈 공식 홈페이지를 들러서 FTP에 올린 다음, 텔넷으로 unzip하기가 좀 귀찮습니다.

게다가 다중 사용자를 수용할 때에도, 각 사용자를 위해서 모든 사용자에게 ftp권한을 넘겨줄 수는 없지 않겠습니까.

http://eyelog.info 제가 열어두고 있는 다중 사용자용 블로그입니다만, 가장 큰 요구가 스킨과 플러그인을 업로드 할 수 있는 것입니다.

사실 저 스스로 태터툴즈에서 자동으로 스킨/플러그인을 다운로드 받아서 스킨/플러그인에 압축을 해제하는 php코드를 작성한 바 있었습니다만,

사용자 인증 절차에서 막혀버렸네요.

이를 태터에 추가하는 것은 말도 안되는 것인 걸까요?

2

답글: 스킨/플러그인 자동 업로드 기능 추가

이전에도 이 기능에 대한 논의가 있었습니다...
문제는...
보안성 문제와 압축포멧을 어찌 처리할 것이냐하는 고양이 목의 방울이 문제가 되었었습니다...

무슨 이야기냐 하면...

어떤 미친 X가 마음먹고 악성코드나 해킹코드를 첨부한 플러그인을 올려놓으면 그 블로그 서버에 발생할 수 있는 일은 상상만 해도 끔찍한 일이 되기 때문입니다.... (즉 서버가 해킹당하는 시나리오 혹은 서버 내부에서 DDOS (or DOS)를 서버 자체에 가해서 정상적인 서비스가 불가능하게 하는 시나리오 등등등...)

또한 압축 포멧은...
PHP 컴파일 당시에 --with-~~ 식으로 설정이 되어있어야만 지원이 가능하고...
또한 PHP가 돌아가고 있는 OS 환경에 따라서 어느 포멧을 채택하느냐도 나름대로 문제가 됩니다....ㅡㅡ;;

말이 않된다기보다는....
현재의 시스템으로는 거의 Mission Impossible 급일 뿐입니다... orz

잠수...

3

답글: 스킨/플러그인 자동 업로드 기능 추가

보안성 문제는 파일 속성 무시로 php나 asp 등을 해석하지 않도록 하면 되는 걸로 알고 있습니다.

그리고 unzip이나 tar는 거의 대부분의 호스팅 업체가 지원하고 있지 않을까요?

4

답글: 스킨/플러그인 자동 업로드 기능 추가

구현이야 어떤 식으로든 가능하겠으나 역시 문제는 보안입니다.
악성 코드인지 아닌지 판별할 수 있는 방법이 존재하지 않거든요. (무슨 백신 엔진 같이 패턴 처리 알고리즘을 달지 않는 이상... -_-)

티스토리의 경우는 그래서 막은 걸로 알고 있고, 개인용 배포판의 경우는 고려를 해볼 수도 있겠습니다만 역시 php가 웹서버 권한으로 실행되는 경우가 대부분인지라 보안 문제가 발생할 가능성이 높습니다.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

5

답글: 스킨/플러그인 자동 업로드 기능 추가

플러그인의 보안이라는게 단순히 외부에서 임의로 그 php 파일을 실행하는가가 중요한 것이 아닙니다. 태터툴즈의 플러그인 동작원리나 구조상 플러그인은 사용하기 시작하는 동시에 태터툴즈 그 자체의 일부가 되어 동작합니다. 그 안에 어떤 역할을 하는 코드가 들어있는지를 판단해서 양호, 불량을 구분하는 것은 불가능합니다. 물론 짧게 생각하면 특정 함수나 코드를 사용하지 못하게 하는 방법도 있겠습니다만, 피하는 방법은 얼마든지 있는데에다 오히려 플러그인의 자유도를 깎아먹는 결과가 됩니다. 결코 쉽게 생각할 수 있는 문제가 아닙니다. 플러그인의 동작구조를 확인해주시기 바랍니다.

서버 시스템에서 unzip 이나 tar 를 지원한다고 가정합시다. 그럼 이걸 어떻게 실행할까요? system() 혹은 exec() 를 사용해야 합니다. 이 함수들은 자칫하면 치명적인 위험요소가 될 수 있습니다. 심지어 보안을 위해 이 함수들을 아예 막아버리는 서버도 있습니다. 반대로 php 에서 이 함수의 사용이 가능하더라도 시스템의 설정에 따라 unzip 이나 tar 명령을 실행하지 못하는 경우도 발생할 수 있겠지요. 결코 standard 하지 않습니다. 배포판에 넣는 코드로서는 부적합하다는 결론이 됩니다.

더불어 요즘 저를 고민에 빠뜨린 문제 중 하나이기도 합니다만, zip 파일은 상대경로(relative path)를 포함할 수 있습니다. (e.g. ../../../../../../../somefile)
때문에 압축해제시 지정한(target) 디렉토리 밖의 다른곳에 파일을 풀어버릴 수 있다는 이야기입니다. 다행히 서버관리자의 보안 관리가 잘 되어 있다면 다른 경로에의 쓰기 권한이 없을테니 오류만 생기고 말겠지요 (사실 공식 배포본에 넣기에는 이미 이 시점에서 문제가 되지만요). 그렇지 않은 경우 서버 내의 다른 경로에 임의로 파일을 생성해 버리는 결과가 생길 수도 있습니다.

어느쪽이든 압축파일을 업로드 하게 해서 이를 '안전하게' unpack 하는 것은 어려운 일입니다. 만들면 어떻게든 '기능'을 만들 수는 있겠지만 '배포 가능한' 상태를 기대하는 것은 무리입니다. 적어도 지금의 구조로는, 말이지요. 함께 좋은 방법을 고민해서 찾아보면 어떨까요. 수많은 진보의 시작은 귀찮음에서 시작한다고도 하니까요 smile

laziel (2006-09-11 05:27:43)에 의해 마지막으로 수정