如何使用 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 在 WebSphere 7 中启用 CORS