Java 通过超链接隐藏值

Java 通过超链接隐藏值,java,jsp,servlets,hyperlink,Java,Jsp,Servlets,Hyperlink,我在问:每当我通过链接传递一个值时,它看起来是这样的: <a href="some.jsp?someid=<%=something%>">Click here to view details</a> 但是我也在浏览器URL中看到了所有这些敏感的细节,这很容易受到攻击。我想隐藏所有这些细节,以便在浏览器的url中不显示任何内容,而是在内部进行处理。我怎么做?请忽略jsp标记,我正在学习JSTL并将很快取代scriplets,但最初我想在jsp标记上实现它。非常

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

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

但是我也在浏览器URL中看到了所有这些敏感的细节,这很容易受到攻击。我想隐藏所有这些细节,以便在浏览器的url中不显示任何内容,而是在内部进行处理。我怎么做?请忽略jsp标记,我正在学习JSTL并将很快取代scriplets,但最初我想在jsp标记上实现它。非常感谢您的帮助

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

如果将链接变成按钮,可以将其作为隐藏的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值,并根据需要对其进行处理。

您可以对someid的值进行加密和解密。请参见此处给出的示例:

好的,但在每个学生的“超级链接”中会出现不同的卷号,单击该超级链接后,学生可以根据卷号查看其详细信息,但在“按钮”中,我可以看到卷号,以便在单击按钮后可以看到详细信息吗?@tom:如果卷号是“someid”,这样他们就可以看到他们的具体细节了。如果卷号是另一个值,只需通过相同的表单将另一个隐藏值传递到some.jsp页面。好的,但是通过加密和解密,任何外部用户也可以这样做,因此可以通过解密获得敏感值……那么这有什么用呢?他们无法解密,除非他们知道密钥。好的,我得到了它,但是您认为对于敏感信息来说,它会非常安全吗或者简单地说,如果我可以把所有这些东西都隐藏在那个url中,这样就没有人能看到任何东西,那么哪一个更好呢?我的朋友?在我的系统中,我已经在一个超链接中加密了如此敏感的dataPOST请求???它不是一个表单,一个超链接。我可以在表单中放置超链接…将其设置为POST方法吗?
<form method="post" action="some.jsp">
    <input type="hidden" name="someid" value="<%=something%>" />
    <input type="submit" value="Click here to view details" />
</form>