2016-12-31 1 views
2

기본 RESTful API를 수행 중이므로 보안에 의문이 생깁니다.프론트 엔드에 대한 API 보안

PHP에서 OAuth2 보안 시스템을 사용하여 기본 RESTful API를 구현했으며 HTTP에서 작동합니다.

내 API의 일부 방법을 사용하는 프론트 엔드 (아마도 Angular2 앱)가 있습니다 (주로 메소드 가져 오기). 이 프론트 엔드는 OAuth2에 대해 헤더 사용자, 비밀번호 및 API 토큰을 보내는 인증이며 API는 토큰을 사용하여 응답합니다. 내 프론트 엔드의 단순한 사용자가이를 캡처하여 사용할 수 있습니까?

HTTPS없이 API를 보호 할 방법이 있습니까?

+3

사용자 이름과 비밀번호를 전송할 때마다 https를 사용하는 것이 좋습니다. 요즘에는 많은 서버 리소스를 사용하지 않으므로 이러한 연결을 사용하는 것이 단점이되지 않습니다. – rpi

+0

파트너를 구성한 다음 구성한 것으로 확인하십시오 –

+0

@ NishantNair 어떤 파트너입니까? 그것을 공유하는 방법? – jonrsharpe

답변

1

HTTP를 사용하지 않고 API (또는 웹 사이트)를 보호 할 방법이 없습니다.

사용자가 로그인해야하는 모든 종류의 서비스를 실행하는 경우 HTTP를 사용하는 것이 필수적입니다.

어떤 보안 프로토콜 (OAuth2, Basic Auth, SAML 등)을 사용하든 상관없이 - 최종 사용자와 동일한 WiFi 네트워크에있는 사용자, 누구나 볼 수있는 사람 사용자와 사용자의 서버 간 네트워크 트래픽 또는 네트워크 트래픽을 볼 수있는 클라이언트 컴퓨터의 서버에있는 악성 응용 프로그램은 일반 텍스트 자격 증명과 토큰을 볼 수 있습니다. 당신이 어떤 이유로 HTTPS를 사용하지 않도록하려는 경우

이 항상 당신이 정말로해야하지,/등

해킹으로 이어질 것입니다! Let's Encrypt은 물론 Amazon 및 기타 제공 업체를 통해 무료 인증서를받을 수 있습니다.

HTTPS 대신 HTTP를 계속 사용해야하는 이유를 알고 싶다면 article on the subject: Why HTTP is Sometimes Better than HTTPS을 읽어보세요. =)

0

OAuth2는 보안을 하위 계층의 수중에 위임하도록 설계되었으므로 더 이상 클라이언트가 암호화 라이브러리를 가질 필요가 없으므로 HTTPS가 필요합니다. 자세한 내용은 this answer을 참조하십시오.

서버의 HTTPS 가용성을 보장 할 수없는 경우 OAuth1.0a가 더 유용 할 수 있습니다.

관련 문제