2012-05-21 2 views

답변

5

"CouchDB 복제"프로토콜이 없습니다. 복제 프로세스는 두 개의 CouchDB 엔드 포인트에 연결하는 클라이언트로, 하나에서 문서를 읽은 다음 다른 클라이언트로 쓴다. 물론, CouchDB에는 이러한 클라이언트 ("복제기")가 내장되어 있습니다. 개념적으로는 타사 응용 프로그램입니다.

즉, 응용 프로그램의 보안 분석에서 복제를 제거 할 수 있습니다. 먼저 일반 웹 클라이언트가 서버에 읽고 쓰는 것을 고려하십시오. 그걸 잠급니다. 해킹 된 웹 브라우저를 사용하는 가상의 공격자 또는 사용자 정의 HTTP 클라이언트 (예 : 교차 출처 정책을 고려하지 않음)를 사용할 수 있습니다.

이 문제가 해결되면 복제가 필요에 따라 보안 정책을 준수하게됩니다. PouchDB와 CouchDB를 사이에 복제 즉

:

  • 당신이 원격 서버에을 추진하는 경우는, 보안 도구는 원격 validate_doc_update 기능입니다.
  • 원격 서버에서을 가져 오는 경우 보안 도구는 데이터베이스 _security 개체, 특히 "members" 배열입니다. 클라이언트는 데이터베이스 전체를 읽거나 전혀 읽을 수 없습니다. 물론 필터링 된 복제를 서버 측의 특수 용도 데이터베이스로 만들 수 있습니다.
+0

이것은 내 생각에 CouchDB를 직접 노출하지 않을 것이며 (MySQL 또는 다른 데이터 저장소를 직접 노출하지 않기 때문에) 일종의 통과 엔드 포인트를 구현합니다. 하지만 CouchDB "프로토콜"이 없다고 말할 때 여기 약간 혼란 스럽습니다. 제 3 자 클라이언트 역할을하는 것이 무슨 의미인지 이해합니다. 그러나 PouchDB의 복제는 본질적으로 그 행위를 프로토콜로 취급함으로써 interop을 달성하고 있거나 여전히 여기에 뭔가 빠져 있습니까? –

+1

네, 맞습니다. 내 의견은 비공식적 인 것이지 맑은 의미가 아닙니다. 물론, 복제 할 끝점 사이에는 엄격한 대화가 있습니다. 즉 프로토콜입니다. 그러나 멋진 점은이 대화가 단순히 클라이언트를 연결하고 정상적으로 업데이트한다는 것입니다. 복제를위한 대역 외 채널은 없습니다. 여기서 개념 모델을 좀 더 자세히 설명합니다 : http://stackoverflow.com/questions/4766391/what-is-the-couchdb-replication-protocol-is-it-like-git – JasonSmith

+0

CouchDB는 실제로 직접 노출되도록 설계되었습니다. 앱 서버와 같은 사용자에게 물론 많은 사람들은 (MySQL과 같은) 전통적인 3-tier 모델에서도이를 성공적으로 사용합니다. 사용자 노출에 대한 결정은 CouchDB의 사용자 및 인증 모델로 작업 할 수 있는지 여부에 달려있다. 그것은 인생 보호기 (앱이 해당 모델에 맞을 경우) 또는 거래 차단기 (그렇지 않은 경우)입니다. – JasonSmith