2013-05-22 2 views
3

OAuth를 사용하여 다른 서비스에 로그인하는 서비스를 작성하고 있습니다. 내 서비스의 요점은 사용자가 로그인하지 않은 상태에서 유지 보수 작업을 수행하는 것입니다. 따라서 사용자가 로그인하지 않은 상태에서 사용할 수 있도록 OAuth 토큰을 저장해야합니다. 사용자가 기록 된 경우 에서 사용자의 암호를 암호화 키로 사용할 수 있습니다 (매번 요청할 때마다 사용자 암호가 해시로 저장 됨). 암호화 된 토큰을 저장합니다.사용자 자격 증명 토큰을 안전하게 저장합니다.

그렇지만 사용자가 로그인하지 않은 상태에서 토큰을 사용할 수 있도록 웹 서비스가 필요합니다. 따라서 데이터베이스 (AES)에 암호화 된 키를 저장하는 것이 좋습니다. 그런 다음 해독 할 키를 고려하고 있습니다. 그것들은 응용 프로그램에 하드 코딩되거나 다른 것 (사용자의 이름/전자 메일/해쉬 된 암호의 조합)에서 파생 될 필요가 있지만, 그 파생의 논리는 여전히 소스에 있습니다.

이것은 비밀 키를 모호하게 만들 수없는 PHP로 작성된 것으로 감안할 때 가능한 한 보안을 유지하기위한 최상의 옵션은 무엇입니까? 내 소스 코드에는 항상 데이터베이스 자격 증명이 포함되어 있습니다. 즉, 소스 coe에서 얻을 수있는 데이터베이스를 엉망으로 만들 수 있지만 OAuth 토큰을 사용하면 침입자가 다른 사이트에서도 사용자의 데이터를 엉망으로 만들 수 있습니다. 내 권한이 손상되어 사용자에게 가능한 한 많은 보증을 제공하고 싶습니다.

답변

1

처음에 OAuth 토큰을 사용하는 이유 중 일부는 취소 될 수 있다는 것입니다. 다른 사용자 별 데이터처럼 토큰을 보호하십시오. 앞으로 특정 시점에 사용자 데이터가 유출되었다고 생각되는 이유가있는 경우 사용자에게 알리고 토큰 취소를 요청하십시오.

관련 문제