对于经验丰富的Web开发人员来说,这可能是一个非常简单的新手问题,但我不是,而且四处搜寻也无济于事。

我在Heroku上托管了一个非常简单的Web应用程序,其代码为here。它有两个JSP页面,一个索引,一个带有验证结果,没什么花哨的。两个JSP页面是here (index.jsp)here (results.jsp)

问题与validation servlet有关:它是POST,并且在使用应用程序本身时通过index.jsp中的输入按钮被触发。但是我已经测试过,如果我直接调用servlet,它也可以工作...而且我不想要那样。

是否有一种方法可以可靠地确保仅当来自索引页的servlet才能被调用(否则发送403)?

最佳答案

我使用的一种方法是使index.jsp上的输入表单包含一个隐藏字段,该字段包含一个md5哈希值,results.jsp也可以计算该哈希值。我使用客户端计算机IP地址的md5哈希值与共享秘密短语连接。

我想对于给定的客户端IP地址,哈希值始终将是相同的,因此您还可以将其与另一个值(例如当前时间)加盐,该值在另一个隐藏字段中传递,以包含在result.jsp的计算中。

07-28 00:23
查看更多