私は新しいことを学びながら遊んでいます。現在ログインしている場合は、自分のサイトにログインして別のページにアクセスするための作業をしています。現在ログインしているログインフォームがあります。誰かがログインしているかどうか、ログインページにリダイレクトしていないかどうかを確認できるセッション変数セット。ここでそれはどのように動作し、私の問題です。私は一度ログインしたログインページを持って、Home.phpと言うように指示します。これ以外は素晴らしいことですが、私はurlから直接home.phpに行くことができます。その人がログインしていなくてもmysite.com/home.phpにアクセスすることができます。URLを入力してバックエンドスクリプトにアクセスしないようにするにはどうすればよいですか?
これを修正するには2つのことを試みました。私はHome.phpのためにこれを試みた:
<?php
session_start();
if(isset($_SESSION["Authenticate"])){
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<?php include "structure/header.php" ?>
<div class="cmsPanel">
<a href="php/cms/logoutProcess.php">Logout</a>
<div id="AddEditor">
<form method="POST" action="php/cms/newEditor.php">
<input class="loginFields" type="text" name="name" placeholder="First Name">
<input class="loginFields" type="email" name="email" placeholder="Email">
<input type="submit" value="Create New Editor">
</form>
</div>
<div id="manageEditors">
<div>
</div>
</div>
</div>
<?php include "structure/footer.php" ?>
</body>
</html>
}
else{
header("Location: login.php");
}
?>
これはうまくいかなかった。私はエラー500と空白のページに終わるだろう。
<?php
session_start();
if(isset($_SESSION["Authenticate"])){
include_once('php/cms/EditorPanel.php');
}
else{
header("Location: login.php");
}
?>
あなただけmysite.com/php/cms/Editorpanel.phpに移動し、ログインをバイパスすることができ除き、作品:だから私はちょうど私がこのような何かを行うことができます考え出し解決策を考え出すしようとしています。これにより、誰かがmysite.com/php/cms/newEditor.phpや自分のサーバー上にある他のバックエンドスクリプトなどに直接アクセスできることもわかりました。個人的に私はhome.phpのすべてを持っている最初の試みを使用できるようにしたいと思っていますが、私のサーバー上の他のバックエンドスクリプトに誰かがアクセスするのを防ぐ方法も理解する必要があります。
私はちょうどcmsフォルダのhtaccessを使用し、それにすべてのDenyを追加することができると考えましたが、これによってバックエンドスクリプトが実行されなくなります。私はcgi-binを使用できますか?どうすれば私はそれにアクセスできますか?私のftpでは、ルートディレクトリwwwの外に何も追加することはできません。ルートが確立されたホストの内部に新しいルートディレクトリを指定する方法はありますか?
ありがとうございます。私は完全にそれを見ている。 – Vaprx