【问题标题】:hide value by a hyperlink通过超链接隐藏值
【发布时间】:2012-02-11 07:48:02
【问题描述】:

我问的是:每当我通过链接传递一个值时,它看起来像这样:

<a href="some.jsp?someid=<%=something%>">Click here to view details</a>

现在,当我单击该超链接时,我将转到 some.jsp 并检索搜索值,例如:

request.getparameter("someid"); 

但是我还在浏览器 URL 中看到了所有这些敏感细节,这些都是易受攻击的。我想隐藏所有这些细节,以便浏览器的 url 中不会显示任何内容,但处理将在内部完成。我该怎么做?请忽略 jsp 标签,我正在学习 JSTL,很快就会替换 scriplets,但最初我想在 jsp 标签上实现它。任何帮助深表感谢。

【问题讨论】:

    标签: java jsp servlets hyperlink


    【解决方案1】:

    如果您将链接变成一个按钮,您可以将其作为隐藏的 POST 值传递并让您的 some.jsp 页面读取它。例如:

    <form method="post" action="some.jsp">
        <input type="hidden" name="someid" value="<%=something%>" />
        <input type="submit" value="Click here to view details" />
    </form>
    

    然后在您的 some.jsp 上,您可以读取 someid POST 值并随心所欲地处理它。

    【讨论】:

    • 好的,但是在每个学生的超链接中出现了不同的卷号,点击该超链接后,学生可以根据他们的卷号查看他们的详细信息,但在按钮中我可以看到卷号,以便在单击按钮后我可以查看详细信息吗?
    • @tom:如果卷号是“someid”,那么他们可以根据它看到他们的具体细节。如果卷号是另一个值,只需通过相同的表单将另一个隐藏值传递给 some.jsp 页面。
    【解决方案2】:

    首先,如果你想在 URL 中显示敏感的东西,你为什么要使用 GET 请求。 您应该使用 POST 请求。将 someid 的值存储在请求属性中。

    【讨论】:

    • 在超链接中发布请求???它不是一个表格,一个超链接。我可以在表单中放置超链接...将其设置为 POST 方法吗?
    【解决方案3】:

    你可以加密和解密 someid 的值来做这件事。请参阅此处给出的示例: Encrypting a String with DES

    【讨论】:

    • 好的,但是通过加密和解密,任何外部用户也可以这样做,因此可以通过解密获得敏感值....那么这个有什么用呢?
    • 除非他们知道密钥,否则他们无法解密它
    • 好的,我明白了,但你认为它对于敏感信息会很安全吗?或者我可以将所有这些东西隐藏在那个 url 中,这样没有人可以看到任何东西,哪一个更好我的朋友?
    • 在我的系统中,我已经加密了这些敏感数据
    猜你喜欢
    • 2011-10-04
    • 2017-03-23
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多