2009-03-19 5 views
1

ユーザーがリンクにアクセスしたときにユーザーを認証するために使用される暗号化された値を含むリンクをユーザーに送信できる必要があります。PHPのURLを使用して認証を処理する方法

現在のプロセスでは、saltと約40文字の一意のハッシュを使用し、その後暗号化され、base64でエンコードされるため、電子メールで安全に転送でき、理論上は安全にURLに戻ります。

しかし、このようなことを初めて試みたので、暗号化された値にスラッシュの影響を考慮しませんでした。これは、私はそれを解読しようとすると明らかに動作しませんURLからプルするときに値が切り捨てられる原因になります。

これは一般的にどのように達成されていますか?チュートリアルなどへのリンクは常に高く評価されています。

+0

Base64でエンコードされたものにURLエスケープを使用するべきではありませんか? – dirkgently

答えて

1

私はあなたの方法が全体的に良いと思っています。実際、すでに過剰なものと思われるかもしれません。 URLのスラッシュ(およびその他の問題の可能性がある文字)の問題については、確認トークンにurlencode()(確認ページではurldecode())を必ず使用してください。

+0

どうすればそれを逃すことができました! (頭の上に自分自身を刺す)。どうも。 :D –

1

認証を必要としないページに機密データを含めないでください。問題を解決する簡単な解決策があります。ハッシュを送信する前に、urlenconde関数でURIを安全にしてください。処理する前にurldecodeに渡してください。

関連する問題