2012-10-04 3 views
2

I'm PDF이라는 간단한 서비스를 사용하여 온라인 인보이스에 PDF 버전을 만듭니다. 현재 클라이언트는 온라인 버전을보기 위해 로그인해야하지만 결과적으로 API 서비스는 액세스하지 못합니다. pdf 서비스가 사이트에 액세스하는 것을 어떻게 감지하여 암호없이 적절하게 허용합니까?비밀번호로 보호 된 영역에 대한 API를 통한 액세스 감지

$ _Server [ 'http_referrer']는 그렇게 할 것이라고 생각했지만 행운이 없었습니다. 변수가 무엇인지 확신 할 수 없기 때문에 페이지를 방문 할 때마다 var_dump ($ _ Server)를 전자 메일로 보냈습니다. 그것은 내가 페이지에 갔을 때 아름답게 보냈지 만, pdf가 생성되었을 때 운이 없었습니다.

아이디어가 있으십니까?

도움 주셔서 감사합니다.

답변

4

사용자를 식별해야합니다. 이 서비스를 사용하는 유일한 방법은 PDF URL (GET 매개 변수)에 무언가를 추가하는 것입니다.

그래서 서버 측에서 비밀을 만들고 사용자 ID에 서명하고 impdf URL에 추가 한 다음 요청시 비밀로 구문 분석하십시오. 권한 부여에 사용할 수있는 사용자 ID로 끝납니다.

+0

추가 된 데이터는 아마 일회용 암호이거나 그렇지 않으면 현재 사용자 세션이있는 한만 살아 있어야합니다. –

+1

자유롭게 내 대답을 편집하십시오 :) 그게 전부입니다. –

3

IP 주소를 보셨습니까?

서비스가 아마도 동일한 IP 주소 (또는 주소 범위)에서 사이트에 액세스합니다. 그렇다면 PHP의 $_SERVER['REMOTE_ADDR']에있는 요청의 원격 IP 주소를 확인하기 만하면됩니다.

또한 IP 주소가 spoofed 일 수 있기 때문에 ACLs은 완벽하지는 않습니다. 네트워크에서 나가고 들어가는 패킷에 대한 절대적인 통제 (또는 안전 보장)가 없으면 보안에 너무 많이 의존해서는 안됩니다. 즉, "간단한"보안 요구 사항을 충족시킬 수있을 것입니다.

HTTP referer은 꽤 많이 trivial to circumvent입니다. 따라서, 그것은 안전을 위해 충분히 신뢰할 수 없으며 소금 한 알을 가지고 섭취해야합니다.

0

위의 조언에 대해서는 언급하지 않겠습니다. 기본적으로 그들은 모두 보안 조치를 취합니다.

PDFmyURL의 API와 같은 API를 사용하면 여러 표준 방법을 통해 직접 로그인 할 수 있습니다. 이렇게하면 새로운 것을 만들지 않아도됩니다. 보안 영역에 액세스하는 방법에 대한 섹션

직접 링크 : PDFmyURL API documentation

공개 :이 서비스를 소유 Kaiomi을 위해 작동합니다.