将查询字符串隐藏在URL中

3
我想隐藏在URL中显示的查询字符串,如下所示图像:

enter image description here

我将其打开为新窗口,代码如下:

1)jQuery打开新窗口的代码:

 var url = rootUrl("Home/Test?Docs=" + check);
 var w = window.open(url, '_blank');

而且 2) 控制器(服务器端)代码:

    public class TestViewModel
    {
        public string Docs { get; set; }
        public long DocIDs { get; set; }
        public long TestIDs { get; set; }
    }
    public ActionResult Test(TestViewModel Test)
    {
        return View();
    }

但在这种情况下,文档ID显示在查询字符串中。 我只想隐藏查询字符串以提高安全性。 我该怎么做?

请点击此链接:https://dev59.com/rG865IYBdhLWcg3wKLX6 - Bappi Datta
你正在问错问题。某人是否能看到文档ID对于您的Web应用程序的安全性并不重要。如果您依赖隐藏变量来保护应用程序,那么您做错了。请参阅https://dev59.com/nEXRa4cB1Zd3GeqPtaJL#245586获取更多信息。 - Tommy
@BappiDatta 但正如上面URL中所示,我正在发布文档列表,可能还有更多。在这种情况下,我需要隐藏这些ID。 - Rahul
3个回答

1
你可以使用POST请求。如果你想加密,应该通过HTTPS发送。

0

如果您不想显示参数,那么就不要将它们发送到打开的窗口(TEST),而是将它们存储在主页面的隐藏字段中,然后使用JavaScript在打开的窗口中获取值,方法是:window.opener.document.getElementById('ID_OF_THE_HIDDEN_ELEMENT_IN_THE_PARENT_PAGE')。

请参考我为另一个答案编写的示例


0
  1. 您可以将数据存储在会话变量中,或尝试将值存储在cookie中。

  2. 最好使用TempData,它只允许值被使用一次(第一次访问后删除)。但是,这意味着该值几乎立即被使用。

  3. 加密查询字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接