在我的旧公司,我们有一个内部网站设置,只有在你的 URL 末尾有密码时才允许你查看它,我假设使用的是 AJAX,但我不太确定,即使是我不知道如何编码。
该 URL 类似于 internal.mysite/secretpanel?pass=superman,如果您输入的内容不是 superman,它会将您重定向到错误的通行证页面。
我的问题是如何检查 URL 的密码并重定向到“密码错误”页面?
在我的旧公司,我们有一个内部网站设置,只有在你的 URL 末尾有密码时才允许你查看它,我假设使用的是 AJAX,但我不太确定,即使是我不知道如何编码。
该 URL 类似于 internal.mysite/secretpanel?pass=superman,如果您输入的内容不是 superman,它会将您重定向到错误的通行证页面。
我的问题是如何检查 URL 的密码并重定向到“密码错误”页面?
What you described does not sound like AJAX and also is a horribly insecure system (even as far as internal systems go).
If you are using PHP, you might want to take a look at sessions rather than passing a password in as a portion of the query string in your URL. A simple implementation of this would be to have a login page that checks values posted from a form before redirecting you to a page containing your secrets.
login.php
session_start();
if (isset($_POST['username']) && isset($_POST['password']))
{
// Check to see if the username and password is correct
if (user_is_valid_user($_POST['username'], $_POST['password'])
{
$_SESSION['logged_in'] = true;
// Redirect to your secret page
header("Location: http://mysite.com/secret.php");
}
}
else
{
// Display the login form
echo "<form method=\"post\" action=\"login.php\">";
echo " <input type=\"input\" name=\"username\" />";
echo " <input type=\"password\" name=\"password\" />";
echo " <input type=\"submit\" value=\"Login\" />";
echo "</form>";
}
secret.php
session_start();
if (!isset($_SESSION['logged_in']))
{
// Redirect to the login page since user is not logged in
header("Location: http://mysite.com/login.php");
}
// Display your secret content here
使用 $_GET['password'] (或您希望用作“密码”变量名的任何名称)。将其分配给变量或直接与服务器保存的变量进行比较。如果您不关心安全性,也无需清理它,尽管 ceejayoz 是对的,但如果您想要安全性,请使用发布的变量,这样没有人可以“碰巧低头看到” url 密码。