0

在我的旧公司,我们有一个内部网站设置,只有在你的 URL 末尾有密码时才允许你查看它,我假设使用的是 AJAX,但我不太确定,即使是我不知道如何编码。

该 URL 类似于 internal.mysite/secretpanel?pass=superman,如果您输入的内容不是 superman,它会将您重定向到错误的通行证页面。

我的问题是如何检查 URL 的密码并重定向到“密码错误”页面?

4

3 回答 3

1
  1. 我希望你没有将它用于任何安全的事情。URL 中的密码而不是 POST 数据不是最好的主意。
  2. 不,那不是 AJAX。
  3. 您希望在服务器端而不是客户端执行此操作。
于 2012-04-21T01:03:55.113 回答
1

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
于 2012-04-21T01:26:16.060 回答
0

使用 $_GET['password'] (或您希望用作“密码”变量名的任何名称)。将其分配给变量或直接与服务器保存的变量进行比较。如果您不关心安全性,也无需清理它,尽管 ceejayoz 是对的,但如果您想要安全性,请使用发布的变量,这样没有人可以“碰巧低头看到” url 密码。

于 2012-04-21T01:26:55.523 回答