如何使用 Java Servlet 在 WebSphere 7 中启用 CORS

Posted

技术标签:

【中文标题】如何使用 Java Servlet 在 WebSphere 7 中启用 CORS【英文标题】:How to enable CORS in WebSphere 7 with Java Servlet 【发布时间】:2015-08-20 17:03:30 【问题描述】:
    response.setHeader("Access-Control-Allow-Origin", "https://example.com");

我只想允许“https://example.com”通过 POST 请求访问我的 Java servlet。如何在 IBM WebSphere 7.0.0.27 中启用 CORS

谢谢

【问题讨论】:

【参考方案1】:

我无法提供有关 Websphere 7 的具体信息,但编写一个处理 CORS 预检请求的 servlet 过滤器并不复杂。以下是解释该协议的两个资源:

http://www.html5rocks.com/en/tutorials/cors/ https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

过滤器需要做2个任务:

    识别 http 请求是否为 CORS 预检请求。 如果是 CORS 预检请求: 设置Access-Control-Allow-Origin: https://example.com 设置其他Access-Control-*标头

希望对你有所帮助。

【讨论】:

为什么只进行预检,CORS 将 POST 视为非关键请求并且不发送预检在我看来,他也应该受到保护。【参考方案2】:

请查看https://www.owasp.org/index.php/CSRFProtector_Project 或一般的 CSRF 信息。他们的页面上也有一个 J2EE 过滤器。

您必须构建一个过滤器来检查原始标头(如果您自己执行此操作),这不是火箭科学,但某些浏览器确实以不同的方式实现规范。 Chrome 总是设置源头。

即使使用 CORS,您仍然需要防止像自动表单提交这样的旧 CSRF 攻击,因为据我所知,这不会设置原始标头。

【讨论】:

以上是关于如何使用 Java Servlet 在 WebSphere 7 中启用 CORS的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个 java servlet 程序并使用 XAMPP Tomcat 运行它?

如何在 Java Servlet 中接收大字符串?

如何使用 Java Servlet 在 WebSphere 7 中启用 CORS

Web 应用程序如何推送通知(java/servlet)?

如何使用一个ajax请求从java servlet返回多个json对象

如何在文本文件更改时重新初始化java servlet