私はhere前にこの質問をしますが、ユーザーCheekySoftは私はちょうどなければならない代わりに、「私の問題を述べると解決策のアイデアを頼む」「私の提案されたソリューションを実装する方法を尋ねた」と指摘しました。だからここに行く。がsuPHP
私はそう/home
├── user1
│ ├── [-rwx------] index.html
│ └── [-rwx------] index.php
└── user2
├── [-rwx------] index.html
└── [-rwx------] index.php
私は
<Directory /home/user1>`
<Directory /home/user2>
に設定Apacheのバーチャルホストを持っている場合は、[すべてのユーザがwww.example.com/user1/index.html
またはwww.example.com/user2/index.html
に行くことができるように設定ファイルを持つLinuxサーバ上で
。ただし、これらのファイルのアクセス許可は0700
なので、Web上ではアクセスできません。この理由から私はsuPHPを使用しています。今
<?php
echo file_get_contents('index.html');
exit();
?>
、suPHPを設定して、user1が表示さwww.example.com/user1/index.php
に行くことができます:引数の便宜上
は、index.php
だけ
index.phpのことで、次のしていると言うことができますindex.html
。同様に、user2はwww.example.com/user2/index.php
にアクセスしてindex.html
と表示できます。しかし、user1はでもになり、user2のindex.html
ページを表示するにはwww.example.com/user2/index.php
に、user2の場合はその逆になります。
これに対処する自然な方法は、PHP sessionsです。ページへのすべてのリクエストはメインページ(つまりwww.facebook.com
)にリダイレクトされ、ユーザーはデータベースに対して検証され、正しいページにリダイレクトされます(下の画像を参照)。
ユーザーは、ページ(すなわち。www.example.com/page1.html
)に行くと、その後、有効なセッションが存在することを確認するために、ハードコーディングされページ1 の部分が存在することになります。存在する場合、ページがロードされます。存在しない場合、ユーザーはこの場合はindex.html
にリダイレクトされます。ログインして有効なセッションが確立されると、元のページにリダイレクトされます。私たちは、これを実行するためにindex.php
を変更することができます。
indexValidate.php:
<?php
//this is purely pseudo code, I can't guarantee it will work
session_start();
require_once 'Session_Validator.php';
$sv = new Session_Validator();
$sv->validate($un, $pwd);
echo file_get_contents('index.html');
exit();
?>
しかし、私の設計では、これらのページ(page1.html
、page2.html
が...)、ユーザー独自のディレクトリにあり(index.html
、index.php
)、サーバは、このハードコーディングされたセクションが有効なセクションをチェックしていることを要求することはできません。ユーザーはファイルを編集してこのセクションを削除することができます。もちろん、これはユーザー側では馬鹿馬鹿しいでしょうが、セッションチェックセクションを上部に持つようにファイルのすべてを変更する必要はありません。私はこれをシームレスにしたい。
いくつかの注意事項:
- 私は、ユーザーを検証し、単一
validateUser.php
スクリプトへのすべて要求をリダイレクトするようにApacheを使用することができ、有効であれば、要求元のスクリプトを呼び出します。しかし、これはsuPHPは今すでにユーザーに切り替わった副作用があり、最も可能性の高いvar-www
- 私はApache web login authentication
を使用したくない誰もが私の問題への解決策を提供することはできますか?
私はかなり私の質問には解決策がないと確信していますhttp://stackoverflow.com/a/9561335/654789 – puk