2012-04-23 1 views
0

나는 php 스크립트에 가치를 보낼 app을 만들고있다. 그렇다면 PHP 스크립트는 MySQL 데이터베이스에 conncect하고 JSON 배열을 반환합니다. 그리고 앱이 그것을 읽었을 것입니다. 안전을 어떻게 보장합니까? 현재로서는 어떤 안전 조치도 사용하고 있지 않습니다.안전을 보장하는 안드로이드

+1

무엇으로부터 안전합니까? –

+0

안전이 떨어질 때 전화가 끊어지지 않습니까? –

+0

나는 그가 어떻게 연결을 확보 할 수 있는지 묻고 있다고 생각합니다. –

답변

1

이 질문은 진정한 대답이 가치있는 책을 가져다 줄만한 거대한 주제입니다.

'안전 조치'에 대해 문의 하시겠습니까?

웹 서버 관련 문제가 있다면 먼저 웹 서버를 보호하고 가장 일반적인 공격 방법을 차단할 수있는 스마트 한 API를 만들어야합니다. URL에 무엇인가를 입력하는 것만으로 다른 사람들이 의도 한 사용자가 할 수있는 것과 동일한 일을 할 수 없도록해야합니다. 즉, API에 대한 액세스 권한을 부여하기 전에 사용자의 유효성을 검사해야합니다.

이렇게하는 가장 일반적인 방법은 서버와 클라이언트 만 알고있는 '비밀 키'를 공유하는 것입니다. 따라서 전화를 사용하는 사용자는 특정 키를 가지며 서버에는 키가 있습니다. 이제 사용자는 서버에 데이터를 보내고 sha1 (KEY + DATA)와 같은 검증 해시를 보냅니다. 그런 다음 서버는 데이터를 수신하고 해시가 동일한 지 확인합니다. 요청과 함께 키 자체를 보내지 마십시오.

테스트해야 할 또 다른 사항은 재생 공격입니다. 누군가가 의사 소통에 귀 기울이면 손상을 제한해야합니다. 이것은 요청에 타임 스탬프를 보내고 타임 스탬프가 허용 된 범위 내에 있는지 서버가 확인하므로 다른 사람이 나중에 동일한 요청을 다시 보내면 타임 스탬프가 다르기 때문에 실패합니다. 서버는 입력 데이터 유효성 검증을 위해 타임 스탬프가 고려되기 때문에이를 확인합니다.

그런 다음 서버에서 반환 된 데이터가 올바른지 확인해야합니다. 따라서 서버는 휴대 전화가 확인하는 유효성 검사 해시를 작성하여 누군가가 휴대 전화로 다시 전송되는 동안 데이터를 변경하지 않았는지 확인합니다.

추가 레이어로 AES/Rijndael 256 비트 암호화와 같은 강력한 암호화 알고리즘을 사용하여 보내고 (API에서받은) 데이터를 암호화 할 수도 있습니다. 그러면 데이터를 여는 데 필요한 키를 사용하여 데이터가 암호화됩니다. 전화와 서버가 키를 알고 있고 누구도 키를 안다면 데이터를 안전하게 보낼 수 있습니다.

다음 연결은 HTTPS/SSL이어야하며 이로 인해 통신이 수신되는 것을 방지 할 수 있습니다. 그러나 누군가가 이미 휴대 전화에 액세스 할 수있는 경우 도움이되지 않으므로 다른 언급 된 방법을 사용하는 것이 좋습니다.

휴대 전화의 보안 기능을 손상시킬 수있는 앱이 설치되어 있지 않은 한 휴대 전화는 매우 안전합니다. 또한 웹 서버를 덜 안전하게 할 수 있다고 생각한다면 휴대 전화 만이 안전하다고 통신하므로 해커는 자신의 휴대 전화에서 통신을 쉽게 수신하고 웹 서비스 API의 기초를 파악할 수 있습니다. 그 다음 모든 문을 열어 라. 따라서 보안 계층이 가장 큰 것부터 가장 작은 것으로 바뀌십시오. 웹 서버는 시스템에서 가장 큰 개체입니다.

자세히 알 수 있듯이이 학습에는 많은 시간이 걸릴 수 있습니다. 그러나 당신이 정확히 무엇을 요구했는지 모른 채 더 이상 당신을 도울 수는 없습니다.

관련 문제