通过 URL 和 AJAX 在内部保护密码

Password protecting internally through URL and AJAX?

本文关键字:保护 密码 在内部 AJAX URL 通过      更新时间:2023-09-26

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

URL看起来像这个internal.mysite/secretpanel?pass=superman,如果你输入了除了超人之外的任何内容,它会将你重定向到不正确的pass页面。

我的问题是如何检查 URL 中的密码并重定向到"密码不正确"页面?

你描述的听起来不像AJAX,也是一个非常不安全的系统(即使就内部系统而言)。

如果您使用的是 PHP,则可能需要查看会话,而不是将密码作为 URL 中查询字符串的一部分传入。一个简单的实现是有一个登录页面,该页面在将您重定向到包含您的机密的页面之前检查从表单发布的值。

登录.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>";
 }

秘密.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
  1. 我希望你不要把它用于任何安全的东西。在 URL 中而不是作为 POST 数据中的密码并不是最好的主意。
  2. 不,那不是AJAX。
  3. 您希望在服务器端执行此操作,而不是在客户端执行此操作。

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