如何防止从其他网站调用我的servlet

muk*_*und 5 java security authentication servlets java-ee

好的,所以我有一个像这样的简单servlet.

public class SimpleServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    resp.setContentType("text/plain");
    resp.getWriter().println(req.getParameter("name"));

    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说当我使用这个URL /simple_servlet.do时会触发它

如何确保此servlet仅在从我的网站而不是从其他网站调用时才能正常工作.换句话说,有一些请求参数(不能被欺骗)让我知道.

Lui*_*ano 6

我能想到的唯一方法是,您可以从您的网站(例如JSESSIONID上的MD5)在服务器上生成令牌,并将该令牌传递回您的servlet.只有您的网站知道令牌,其他网站不能窃取cookie(包括JSESSIONID)并从外部计算令牌.从XSRF攻击中也应该是安全的.