2012-10-29 2 views
1

SQL Server에 연결하여 일부 데이터를 검색하는 여러 PHP 스크립트가 있습니다. 나는 안드로이드 응용 프로그램에서 이러한 PHP 스크립트를 호출합니다. 이제 문제는 누군가가 컴퓨터에서 해당 사이트로 이동할 때 공개적으로 스크립트가 출력되는 것을 원하지 않는다는 것입니다. (내 응용 프로그램이 설치된 사용자 및 기타 데이터에 대한 정보를 보유하고 있기 때문에) 이 스크립트가있는 유일한 이유는 내 응용 프로그램의 내부 논리 때문입니다. 내 컴퓨터에서 브라우저를 사용하여 연결하면 안드로이드 전화에서 내 스크립트에 액세스 할 수있는 간편한 방법이 있으며 동시에 출력을 표시하지 않는지 궁금합니다. 다른 옵션이 없다면?내 서버의 PHP 스크립트에 대한 액세스 제한

+1

... 답변은 지옥에 없습니다. – rook

+0

질문 제목을 수정하십시오. 스크립트 업로드와 관련이 없으며 액세스 제한과 관련이 있습니다. –

+0

공개 API 또는 공개 스크립트 또는 기타 항목에 대한 액세스를 제한하는 것은 좋은 제목 일 수 있습니다. – inquam

답변

1

제안 된대로 하나의 비밀 코드를 갖는 것은 매우 안전하지 않습니다. 그냥 프록시를 통해 보낸 메시지를 전달하고 그것을 잡으면 코드가 있습니다. 귀하가 직면 한 것은 기본적으로 공개적으로 사용 가능한 API의 작성자가 직면 한 것과 동일한 문제입니다.

가장 좋은 방법은 모든 요청과 응답에 서명하는 데 사용되는 모든 설치에 대해 고유 한 API 키를 사용하는 것입니다. 이것은 사용자가 수동으로 응용 프로그램에 넣는 것을 포함하지 않아도됩니다. 응용 프로그램이 처음으로 통신 할 때 서버가 키를 제공하고 그 키를 해당 장치/설치에 매핑 할 수 있습니다.

Google을 Authentication for REST API in PHP 또는 이와 비슷한 것으로 지정하면 올바른 방향으로 향하는 무언가를 찾을 가능성이 높습니다.

0

Android의 백그라운드에서 PHP 스크립트를 호출하는 경우 비밀 코드를 쿼리 데이터로 전달할 수 있습니다. 배경에서 일어나기 때문에 아무도 볼 수 없습니다. 귀하의 PHP는 해당 코드가 전송되는지 확인합니다. 그렇지 않으면 아무 것도 반환하지 않습니다. 이것은 매우 안전한 시스템은 아니지만, 이런 방식으로 구현 될 수 있습니다.

0

헤더에있는 안드로이드 응용 프로그램에만 알려진 일부 ID (예 : 클라이언트 ID)를 보낼 수 있으며 서버에서이 ID가 있으면 실제 응답을 보냅니다. ID가 없으면 일부 응답을 보냅니다. . 또한 보내는 모든 데이터가 암호화되도록 HTTPS를 사용하십시오.

관련 문제