2012-09-13 7 views
0

전자 메일 확인 페이지가 있는데 전자 메일을 통해 액세스했는지 확인하고 싶습니다. 전자 메일이며 다른 사람이 URL의 메커니즘을 파악하거나 추측하거나 파악하지 못해 일부 장난을 유발하지 않습니다.전자 메일을 통해 전자 메일 확인 페이지에 액세스했는지 확인 하시겠습니까?

내가 을 조사하고 있었지만 쉽게 스푸핑 될 수 있으므로 매우 안전한 방법은 아닌 것으로 들었습니다.

다른 용도로 이메일 확인 이외의 용도로 사용하고 싶지만보다 안전하고 신뢰할 수있는 방법이 필요했습니다. 방문자가 어디에서 왔는지 확인하는 더 좋은 방법이 있습니까?

+0

이메일 주소 확인을 위해 URL에 토큰 형식을 사용하십시오. 왜 그렇게 안전해야합니까? 나는 일어나는 유일한 일은 emailaddress가 바로 확인된다는 것입니다. – PeeHaa

+0

이메일은 그 예입니다. 사용자가 올바른 출처에서 왔는지 확인할 필요가있는 시간이있는 것처럼 느껴집니다. –

+0

"사용자가 올바른 출처에서 왔는지 확인해야합니다." 걱정할 필요가 없습니다. 사용자는 로그인을해야하며 신임장이 정확하다면 그 사람이오고있는 유효한 사용자입니다. – PeeHaa

답변

0

NONCE가 도움이 될 것입니다. 첫 번째 페이지에서 NONCE를 사용하여 클라이언트를 실행하면 클라이언트는 응답에 발급 된 NONCE를 포함시켜야합니다.

예를 들어 WordPress는이 접근법을 사용합니다.

nonce = 번호는 한 번 사용되었습니다. PHP manual

+0

기본적으로 암호화 된 URL을 볼 수 있습니까? –

+0

@septer는 PECL에만 있습니다. 그것은 당신 자신에게 어떤 넌센스를 생성하는 것은 사소한 일입니다. – PeeHaa

+0

기본적으로 사용자가 확인할 수 있도록 임의의 문자열을 생성하면됩니다. – PeeHaa

0

당신은 HTTP 헤더를 믿을 수 없다 참조 wikipedia article

PHP 특정 구현을 참조하십시오 : 그것은 위조 할 수 있습니다.

리퍼러 헤더를받을 것으로 기대할 수 없습니다. HTTPS://의 웹 사이트는 해당 정보를 전달하지 않습니다. 이렇게하면 보안 기대에 어긋나게됩니다. 아니, 강제로 할 수는 없습니다.

게시자가 게시 한대로 nonce를 사용할 수 있습니다. PHP의 oAuth가 아닌 다른 것을 사용하고 싶다면/dev/urandom과 같은 소스에서 24 비트 이상의 암호화 된 psudo 난수로 연결 한 전자 메일의 해시 값을 만들 수 있습니다. POSIX 운영 체제에서/dev/urandom에 액세스 할 수 없으면 보안 소프트웨어를 작성하려고 시도하면 안됩니다. 암호로 안전한 PRNG가없는 보안 소프트웨어는 보안 소프트웨어가 아닙니다.

테이블에 해당 해시를 저장할 수 있으며 고유 코드를 사용하여 nonce로 시도한 등록을 처리 할 수 ​​있습니다.

+0

고맙습니다 incognito :) –

관련 문제