2012-01-25 6 views
0

서버에 PHP 요청을하는 앱 (ios 및 android)을 개발했습니다. 보안상의 이유로 브라우저에서 동일한 URL에 사용자가 입력 할 수 없는지 확인해야합니다. 앱에서만이 요청을 허용해야합니다. 나는 자바 스크립트 브라우저 탐지를 할 때 생각 해왔고, 앱에서 호출 할 때 "알 수 없음"으로 대답하는 곳에서는 좋은 결과를 얻는다. 그러나 안드로이드의 경우 브라우저에서나 앱에서 호출 할 때 항상 "안드로이드"로 대답합니다. 서버 측에서이를 감지하는 방법에 대한 아이디어가있는 사람은 누구입니까?android app에서 호출 된 URL 감지

+0

HTTP 헤더에 맞춤 태그를 추가해보세요. –

+0

필요한 보안 수준에 따라 다르지만 식별자로 사용자 에이전트를 사용하는 것은 전혀 안전하지 않습니다. "hmac"에 대해 뭔가를 검색하고 요청을 서명하는 방법에 관심이있을 수 있습니다. –

+0

네 앱이 암호로 요청에 서명하도록하십시오. 또는 더 나은 방법은 도면 게시판으로 돌아가서 더 이상 누군가가 해당 URL을 탐색 할 때 보안 문제가되지 않게하는 것입니다. –

답변

1

사용자 에이전트 문자열을 감지 할 수 있습니다. 이를 사용하여 PHP에서 서버 측에서 수행 할 수 있습니다

$_SERVER['HTTP_USER_AGENT'] 

Android 및 iOS 앱에서 등 "모바일 사파리", "웹킷"같은 물건을 포함하는 사용자 에이전트 문자열을 반환합니다, 웹보기에 말 사용자 에이전트를 독점적 인 것으로 설정하십시오. 다음과 같은 코드로 iOS에서이 작업을 수행 할 수 있습니다 - 나는 안드로이드가 비슷한이 기대하십시오 HTTP_USER_AGENT이 앱에 설정 한 값과 일치하면 PHP에서 다음

[request setValue:@"MyMadeUpUserAgentString" forHTTPHeaderField:@"User_Agent"]; 

만 페이지를 표시합니다.

물론 엄청나게 안전하지는 않습니다 - 일부 브라우저 또는 브라우저 플러그인은 사용자 에이전트를 위조하게합니다. 그러나 대다수 사용자가 브라우저에서 콘텐츠를 보지 못하게됩니다.

+0

대부분의 시나리오에서 작동합니다. – SeanPONeil

+1

전혀 안전하지 않습니다. 4 피트짜리 울타리처럼 불편한 장벽 일뿐입니다. 이것이 당신에게 충분하다면, 이것은 쉬운 해결책입니다. –