PHP - 隐藏 url (GET) 参数

新手上路,请多包涵

我的 PHP/HTML 中有一个这样的链接:

 <a href="http://search.mywebsite.com/login.aspx?checktype=uid&user=adam&password=pass1234&profile=dart&defaultdb=kts"> Log me into this website </a>

当用户点击链接时,参数由第三方网站处理,用户无缝登录。

是否可以隐藏/屏蔽/伪装 url,以便用户在将参数传递到指定站点的同时看不到参数?

如果没有,你们将如何处理这个问题?我主要担心用户和密码参数,需要隐藏它们。 (用户=adam&密码=pass1234)

我知道如何隐藏参数的唯一方法是使用表单发布方法,但在这种情况下,它不是一个选项,因为我正在使用直接链接。

编辑: 对于那些一直建议使用 POST 方法的人来说,这不是一个选项,因为我没有使用表单并且接收网站不在我的控制范围内。我正在从一个网站登录到另一个(第 3 方)网站

原文由 Emir Memic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 779
2 个回答

如果您登录的页面由第三方控制,您唯一的选择是使用表单和 POST:

 <form action="http://search.mywebsite.com/login.aspx" method="post">
   <input type="hidden" name="checktype" value="uid" />
   <input type="hidden" name="user" value="adam" />
   <input type="hidden" name="password" value="pass1234" />
   <input type="hidden" name="profile" value="dart" />
   <input type="hidden" name="defaultdb" value="kts" />
   <input type="submit" value="Log me into this website" />
</form>

编辑:如果它必须是链接并且需要 javascript,那么您可以使用 javascript 即时创建和提交表单

 <a href="#" onclick="postLogin()">Log me into this website</a>

<script type="text/javascript">
function postLogin() {
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", "http://search.mywebsite.com/login.aspx");

    var params = {checktype: 'uid', user: 'adam', password: 'pass1234', profile: 'dart', defaultdb: 'kts'};
    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}
</script>

原文由 cOle2 发布,翻译遵循 CC BY-SA 3.0 许可协议

不要使用 \(_GET 传递任何个人、机密或重要数据。请改用 \)_POST。

我不知道是什么阻止您使用 \(_POST,但如果您仍然坚持使用它,请尝试使用 md5() 对这些数据进行编码并在必要时验证它们。您始终可以使用 \)_SESSION 传递 $_POST 登录数据以供进一步使用。

原文由 Sates 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏