何年にもわたって作成したさまざまなPHPログインシステムで、ページを保護するためのさまざまな方法を試しました。
私は常に.htaccessを使用します。これは、すべてのリクエストをindex.phpにルーティングします。ただし、特定のページのアドレスを直接入力すると(知っている場合)、ロードされます。これは明らかに安全性が低くなります。
1つのサーバーで、すべての「保護された」ページをpublic_htmlの外に配置しようとしました。これはうまくいきました。これは、「folder / products/product.php」に移動できなくなったことを意味します。素晴らしい!つまり、そのページへのすべてのリクエストをインクルードに入れて、そのページを表示するユーザーを完全に制御できるということです。
httpdocs
しかし、別のサーバーで問題が発生しました。基本的に、フォルダー外のものにアクセスできません。厳密には真実ではありませんが、FastCGIサポートをオンにしてアクセスできますが、セッション書き込みエラーが発生します。それをオフにし、ApacheモジュールとしてPHPをオンにすると、が得られbasedir restrictions
ます。
わかった。では、ページに自分だけがアクセスできることをどのように確認できますか?パブリックフォルダにあるとしても?そこに入れることができるある種の.htaccessがありますか?それは外部からの誰かがそれにアクセスするのを防ぎますか?または、すべてのフォルダーにパスワードを設定した場合、パスワードは機能しますか?それは、ファイルを含めることができることを意味しますか?
私は本当にこれに関する良い最終的な解決策が必要です。すべてのサーバーで機能するものであり、発生していることを確認できる唯一の方法は、すべてをパブリックフォルダー内に保持することです。