2010-08-06 5 views
1

저는 iPhone 개발자가 아니지만 iPhone 사용자 에이전트에게 데이터를 제공하는 PHP 백엔드 서버를 기반으로하는 프로젝트에서 시작하고 있습니다. 시작해야 할 곳이 궁금합니다. 세션/보안.PHP 웹 애플리케이션 백엔드에 iPhone 앱 로그인 설치

브라우저를 사용하면 로그인시 쿠키 ​​(세션 ID 포함)를 전달할 수 있습니다.

그러나 iPhone이 다른지 궁금합니다. iPhone 앱이 쿠키/토큰과 같은 저장 공간에 액세스 할 수 있습니까? 아이폰 앱 사용자 에이전트를 특별하게 만들기 위해주의해야 할 사항이 있습니까?

답변

2

NSURLRequest를 사용하는 것은 기본적으로 NSHTTPCookieStorage를 사용합니다. 물론 쿠키는 앱간에 공유되지 않습니다.

NSUserDefaults를 사용하거나 키 체인 (SecKeychain * 기능)을 사용하여 추가적으로 저장할 수 있습니다. 키 체인 API는 약간 번거롭지만 예제가 있습니다. 특히 민감한 것에는 키 체인을 사용하는 것이 더 좋습니다. 대부분의 파일은 암호화되지 않은 상태로 저장되며 대부분의 사람들은 암호화 된 백업을 사용하지 않습니다 (패스 코드가없는 키 체인을 사용하더라도 안전한지 확실하지는 않지만 ...)

얼마나 오래있을 지 걱정할 수도 있습니다 토큰이 저장됩니다 (iPhone에서의 타이핑은 고통이며 브라우저는 기본적으로 비밀번호를 저장하지 않습니다). 그리고 얼마나 쉽게 취소 할 수 있습니다.

0

iPhone의 Safari 브라우저는 데스크톱 mac 또는 PC의 Safari와 매우 유사합니다. 그것은 쿠키, 세션, 자바 스크립트를 지원합니다. 로그인과 관련하여 특별한 일을 할 필요가 없습니다.

+0

좋아,하지만 브라우저에 대해 말하는 것이 아닙니다. XML/JSON을 통해 서버와 통신하는 iPhone 앱에 대해 이야기하고 있습니다. – Xeoncross

5

내 앱은 동일한 플랫폼 쌍입니다. 나는 PHP 세션이나 쿠키를 망치지 않는다. SSH를 통해 일반 old POST 된 사용자 이름 및 암호 필드로 로그인하고 세션 토큰 (사용자 이름을 기반으로하는 해시)을 반환합니다. 이 응용 프로그램에서는 NSUserDefaults에 숨겨 둡니다. 그런 다음 PHP에서 사용자 ID 또는 권한 부여가 필요한 함수를 호출 할 때마다 해당 토큰을 다시 요구합니다. 그리고 다시, 나는 그냥 평범한 구식 필드로 전달합니다.

BTW, 저는 웹 클라이언트 기능을위한 ASIHTTPRequest 라이브러리의 큰 지지자입니다. 나는 저자와 관련이 없으며, 도서관이 훨씬 쉽게 만든 새로운 iPhone 개발자 일뿐입니다.

+0

사용자 이름/ids/이메일/etc에 해시를 적용하지 마십시오.'mt_rand()'와 현재의'microtime()'과 같은 임의의 것들을 기반으로 생성하는 것이 훨씬 안전합니다. – Xeoncross