2012-02-29 9 views
6

私はPHPプロジェクトを本質的に会社の注文処理ウェブサイトです。会社の各ユーザーは、このWebサイトにアクセスして、ページや機能へのアクセスを制御する特定の資格情報をアプリケーションに与えます。ウェブサイトへのPHPゲストアクセス

今、私は1人のゲストが1ページにアクセスできるようにリクエストしています。このリクエストの複雑さは、ゲストが毎回異なるだけでなく、ページが異なることです。基本的には、このサイトにライブオーダーがないため、システム内にアカウントを持たない顧客が、注文および出荷情報にアクセスして確認できるようにするポータルです。

これを達成するには、UID、MD5ハッシュキー、およびレコードが参照している宛先ページを格納するために使用されるゲスト関係テーブルとしてデータベーステーブルをセットアップすることが考えられます。訪問カウンターと有効期限も含まれています。ユーザーが電子メールを受信すると、http://website.com/verify/?HASH-KEYのような場所に電子メールでリンクが提供されます。

このリンクをクリックすると、verify index.phpページがHASHを受け取り、データベース内でそれを検証し、アプリケーションにリダイレクトする代わりに、この場所内のデータベースにページ参照を表示することが期待されます。これにより、Webサイトの構造を公開したり、すでに設定されているユーザー認証の再作業をせずに、ゲストがシングルページにアクセスできるようになります。

  1. 私は適切な方法でこの解決策に近づいていますか?
  2. 1ページの内容を取得して別のページに表示するにはどうすればよいですか?
+1

が、私はこのストレートを取得してみましょう検証するために行う必要がありますゲストだけがページだけに、正しいの? –

+0

あなたの合計は右のように聞こえる。 – Jeff

+0

ページの参照、それは正確に何ですか?私はあなたのアプローチが私が言うことのできるものから良いものだと言います。 – Anton

答えて

7

1。私は適切な方法でこの解決策に近づいていますか?

多かれ少なかれ。

いくつかのポインタ:

  • はあなたがランダムにハッシュ世代のシードを確認してください。たとえば、顧客IDや他の小規模/連番のMD5を単純にMD5にしてはいけません。そうすれば、他のページを悪意のある行為をしやすいようにすることができます。
  • 設定されたタイムアウト後にハッシュされたリンクを期限切れにします。

2。 1ページの内容を取得して別のページに表示するにはどうすればよいですか?

「注文と出荷情報にアクセスして確認する」ことを望む場合は、通常安全なページを安全でないユーザーに渡そうとするのではなく、つまり、提供されたハッシュでキー入力されたデータに基づいて詳細を入力する「出荷確認ページ」です。

+0

意味が...だからではなく、実際のページに渡すのは、複数の種類のデータをレンダリングすることができますページを持っているし、データベース内のレコードは、情報の種類やレンダリングビューを格納します。あなたは私の友人の論理を話す。 – Jeff

+0

私よりも良い答えです。よくやった。 –

+0

これに加えて、 'HTTPS'を必要とし、ユーザが意図せずに野生に達する場合にハッシュリンクを手動で期限切れにするようにします。 –

0

正しく理解していれば、私はあなたがこれに正しく近づいていると思います。

別のページのコンテンツを含めるには、通常includeを使用します。

include "/path/to/page.php"; 
+0

を持っていたより良い解決策を見つけました。あなたはその質問に答えましたが、ハミッシュは私のニーズに適した代替の視点を提供しています。 – Jeff

2

私はこのようにすることができます。

あなたのシステムの他の部分から完全に独立し、あなたのハッシュ方式を使用して、ちょうどあなたが望むコンテンツを生成しますスタンドアロンのページを持つべきであると思われます。ハッシュURLに十分なデータを入れて、必要なものを判断してください。行うには他に

何かがあなたのハッシュ文字列をURLにタイムスタンプを使用し、あなたがあなたのハッシュを生成するランダムビットのタイムスタンプ部分を持っています。これにより、特定のポイントの後にURLが基本的に「期限切れになる」ようにすることができます。

例:あなたは、現在のサーバー時刻に、この例では「123456789865」を比較し、その有効期限が切れたかどうかを判断することができます

をurl.com/in/123456789865/hash-here。もちろん、あなたが戸口システムのいくつかの並べ替えは、非常に特定のページに、非常に具体的なゲストを許可する、とすることを、あなたのハッシュ暗号化の「123456789865」の部分はまだ

関連する問題