2012-06-26 4 views
1

동일한 데이터에서 구동되는 웹 사이트와 아이폰 앱을 갖춘 시스템을 설계하려고합니다. 어떻게 웹 사이트를 만들고 건축 할 수 있는지 이해하지만 iphone 앱을 추가 할 때는 적용 방법이 확실하지 않습니다. 웹 사이트에 대한 C#을, SQL 서버, asp.net을 - 특수완전한 웹 서비스, 웹 사이트 및 아이폰 앱을 구성하십시오.

(웹 서비스를 사용하여 내 대부분의 데이터를 얻기 위해 노력할 것이다 어디 수)

- 특수 Objective- : 디자인에 대한

내 고려 사항 아이폰 앱 개발을위한 C, x 코드 등

1. 아이폰과 상호 작용하기 위해 웹 서비스를 노출해야합니까? 그렇다면 실제 웹 사이트에서 별도의 웹 앱으로 간주 될까요? 아니면 webservice가 웹 사이트에 내장 된 다음 아이폰이 해당 웹 서비스와도 상호 작용할 것입니까?

2.) 웹 서비스를 노출 할 때 보안 현명한 고려해야 할 사항은 무엇입니까?

3) 이와 같은 시스템을 구축하기위한 다른 아키텍처 조언은 무엇입니까? 어쩌면 같은 데이터베이스에서 실행되는 웹 사이트/아이폰 앱을 사용하는 개인적인 경험 일 수 있습니다.

답변

4
  1. 예 예를 들어 응용 프로그램이 바인드/대화를하려면 웹 서비스를 노출해야합니다. 나는 서비스가 별도의 사이트 (예 : data.yourdomain.com, 사이트가 yourdomain.com에서 실행 됨)로 실행하여 웹 사이트에서 데이터를 사용하도록 제안합니다. 그렇게하면 "엔드 포인트"(사이트 및 앱) 모두에 대해 동일한 아키텍처를 공유 할 수 있습니다.

  2. 각 전화와 함께 웹 서비스가 인증 토큰 (사용자 이름/비밀번호 또는 oauth/etc)을 사용하는지 확인하면 승인되지 않은 서비스/데이터베이스 호출을 방지하는 데 도움이됩니다. 또한 서비스가 유효한 HTTPS 연결 (그리고 오직 https)을 통해 노출되어 데이터를 스니핑하여 암호를 얻지 못하게합니다.

  3. 내가 말했듯이 "끝점"에 액세스하는 것이 중요하지 않은 방식으로 서비스를 빌드하십시오. 그런 식으로 안드로이드 앱이나 윈도우 폰 앱 (또는 두 번째 웹 사이트)을 추가하면 새로운 서비스를 만들 필요가 없습니다. 아마도 각 응용 프로그램의 "계정"을 "엔드 포인트 유형"(예 : Android/iPhone/WinPhone/WebSite)에 연결하면 필요한 경우 사용자가 반환하는 데이터 객체를 사용자 정의 할 수 있습니다.

+0

멋진 의견, 감사합니다! 내 웹 서비스가 정말로 중요한 민감한 공개 데이터를 제공하지 않으면 인증 토큰에 대한 질문이 있었지만 여전히 oauth 또는 사용자 이름과 암호가 필요합니까? 나는 사용자 정보와 같은 민감한 데이터의 경우 개인적인 취향 인 것은 분명 – anthonypliu

+0

일 필요가 있음을 이해합니다. 토큰을 제공하지 않으면 누군가 자신의 서비스를 호출하여 모든 데이터를 훔칠 위험이 있습니다. "긁어 모으기 (scraping)"는 또한 당신에게 중요한 성과를 초래할 것입니다. – melodiouscode

+0

위의 미안하지만 "자신의 코드를 통해 귀하의 데이터를 도용"해야합니다. – melodiouscode

0

내가와 상호 작용 할 수있는 아이폰을위한 웹 서비스를 노출해야합니까? 그렇다면 실제로는 웹 사이트에서 별도의 웹 앱으로 간주 될까요? 아니면 webservice가 웹 사이트에 내장 된 다음 아이폰이 해당 웹 서비스와도 상호 작용할 것입니까?

그것은 당신이 네이티브 응용 프로그램을 원하는 경우, 당신은 다른 사람이 내가 고려해야 할 무엇

이 온다 보안 현명한, 아이폰 웹 응용 프로그램을 개발할 수 있습니다, 서비스를 노출 것, 따라 웹 서비스를 노출하는 경우

당신이 윈도우 데스크톱 응용 프로그램

이와 같은 시스템을 구축하기위한 다른 구조의 조언에 웹 서비스를 개발한다면 같은 일반 보안 고려 사항? 동일한 데이터베이스에서 을 실행하는 웹 사이트/아이폰 앱을 사용하는 개인적인 경험 일 수 있습니다.

봅니다 웹 서비스가 명확 빛 만들기 위해 당신을 처음 사용할 때 사용하는 모든 프로젝트에 대한 하나의 데이터 소스에서

0

수 있습니다. 웹 서비스로 데이터베이스를 공개하십시오. 보안을 위해 웹 서비스 프로 시저를 호출하는 사용자 인증.