2014-02-24 4 views
0

모바일 응용 프로그램을 만들려고하는데 다음과 같은 것이 안전하고 괜찮은지 궁금합니다.PHP GET 서버 사용

나는 MySQL 서버에서 호스팅되는 데이터베이스를 가지고 있습니다. 사용자가 응용 프로그램에 계정 정보를 입력합니다. 제출을 누르면 다음 URL이 생성되어 내 서버로 전송됩니다. 그러면 계정에 대한 간단한 JSON 반환 정보가 되돌려집니다. 앱은 남아있는 JSON 만 제거 된 HTML 페이지를 취소합니다.

다음은 생성 후 URL입니다. 나는 응용 프로그램의 암호를 SHA1로 변환 한 다음 전송합니다. LoginValidation.php? X = 시험 & I = a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

이것은 또한, 외부 데이터베이스를 사용하려고 할 때 계정을 처리하기 위해 충분히 수용 할 방법이 있나요은 안전합니까?

감사합니다.

편집 : 이것은 또한 더 큰 기술 회사 (Twitter/Facebook)가 로그인/정보 검색을 처리하는 방법입니까?

+0

PHP cURL을 사용하지만 자신의 API가 있는지 확인하고 POST를 사용하여 데이터를 json 또는 xml로 게시하십시오. –

답변

2

이 문제를 해결할 몇 가지 문제가 있습니다.

  1. 대신 POST를 사용하여 시작할 것입니다. GET은 로그 파일/브라우저 기록 등에 저장됩니다.
  2. 브라우저에서 일반 JSON 만 반환하면됩니다.
  3. 다음 해시를 만드는 데 사용되는 "peper"(응용 프로그램의 비밀 키)와 해시 된 암호와 함께 데이터베이스에 저장된 "소금"이 있는지 확인합니다.
  4. HTTPS를 사용하여 서버와 통신 할 수 있다면 가능합니다. 이렇게하면 요청/응답을 암호화하고 중개자 공격을 피할 수 있습니다.

이것은 일부 문제에 대한 답변입니다.이 문제에 대한 자세한 정보가있을 수 있습니다. 나는 사람들이 더 많은 코멘트를 추가하는 것을 도울 수있을 것이라고 확신한다.

1

암호 해시 버전을 보내는 것은 암호 자체를 전송하는 것만큼이나 안전합니다. 실제 암호는 보이지 않지만 그대로 둘 수 있습니다.

GitHub는 oAuth 또는 임시 해시 문자열을 사용합니다. 전자에서는 한 번 인증을 받았으며 토큰을 반복해서 반복 사용할 수 있습니다. 후자의 경우 토큰을 몇 초 (또는 몇 분 또는 세션 길이) 필요로하고 사용자 ID를 삭제합니다.

GET 또는 POST 이외의 다른 방법으로도 작동합니다. PUT, LIST 및 DELETE는 필요한 것에 따라 사용되는 방법 중 하나 일 수 있습니다. http 메소드는 $ _SESSION 변수에서 가져올 수 있지만 '원시'입력 (file_get_content ("php : // input");)을 사용하지 않으면 제공된 XML을 얻는 것이 번거로울 수 있습니다.

내 답변 내에 답변이 없으면 질문을 잘못 읽은 것일 수 있습니다.