OK、基本的に私は非常に低いセキュリティのログイン ページ (javascript のユーザー名とパスワード) をまとめました。教会のウェブサイトで、日曜学校の資料を閲覧および学習できます。私が望んでいるのは、「プロファイル」に直接 html を入力したりブックマークしたりできないようにすることです。JavaScript ログインを使用する必要があります。たとえば、スクリプトはボブを彼のbob.htmlの「プロファイル」ですが、login.htmlから来た場合にのみbob.htmlに行きたいのですが、非常に複雑にならずにこれを行う方法はありますか? ないと思いますが、とにかく聞いてみようと思いました。
3 に答える
上記のjfriend00のように、複数のスキームが可能です。
ローリングURLを使用することもできます。
プロフィールページがhttp://example.com/profile/fooにあるとします。http://example.com/profile/foo?time=yyMMddhhmmに変更します。ここで、yyMMddは現在の日付を表し、hhmmは現在のサーバー時刻を表します。次に、時間が一致しない場合、サーバーがこのページの提供を拒否することを確認します。
誰かがこのリンクをブックマークした場合に何が起こるかを簡単に確認できます。彼らのブックマークは最大1分間機能します。
残念ながら、ページ上のリンクも1分で期限切れになります。URLをほぼ毎分更新するこの問題は解決できますが、見た目ほど簡単ではありません。ユーザーのコンピューターの時刻がサーバーの時刻と異なる場合があるという事実を考慮する必要があります。
これを行う別の方法は、セッションCookieを使用することです。セッションCookieは、ブラウザが閉じられるまで有効です。閉じると自動的に期限切れになります。これは、jfriend00の元の回答の変形です。
お役に立てれば。
これがすべてクライアント側のJavaScriptからのものである場合、本当のセキュリティであるものは何もできません。私はあなたがそれを知っていると思います。
ただし、ログインページからのリンクに非常に短い有効期限Cookie(1〜5分など)を設定してから、プロファイルページに移動し、プロファイルページにすべてを含めることで、カジュアルな視聴者が直接アクセスするのにわずかな障害を作成できます。デフォルトで非表示になっているプロファイルコンテンツ(CSSルールを介して)。次に、JavaScriptは、ロード時にCookieが存在するかどうかを確認し、存在する場合はコンテンツを表示します。
ビューアがプロファイルページに直接移動しようとすると、Cookieは存在せず、ページのコンテンツはjavascriptによって表示されません。明らかに、コンテンツはページにまだ存在しているため、Webページの動作を知っている視聴者は、他の方法でコンテンツを見ることができますが、デフォルトではブラウザに表示されません。
サーバー側のプログラミングが含まれていない場合は、単純な JavaScript リダイレクトを使用する必要があります。これは、「低レベル」セキュリティではなく、「非レベル」セキュリティと見なされます :)
とにかく、document.referrer でリファラーを確認し、正しくない場合はメイン ページにリダイレクトできます。これは、ユーザーが非常に簡単に操作できることを覚えておいてください。
document.referrer の詳細については、 http://www.w3schools.com/jsref/prop_doc_referrer.asp を参照してください。
if ((document.referrer).indexOf('login.html') > 0 && username=='someone' && password=='pass') {do stuff} else {ユーザーが login.html から到着しなかったか、ユーザー名が間違っているか、パスワードが間違っています}