我正在使用Anypoint Studio 6.1和Mule 3.8.1,并具有Mule Restful应用程序,我想阻止CORS请求被应用程序接受。
已经设置了应用程序来执行此操作,但是证明这是有效的最佳方法是什么?
从我到目前为止所阅读的内容,示例构建了自己的应用程序,我想做一些事情,例如在Postman中发送为CORS请求的请求。我该怎么做?
谢谢
我想阻止CORS请求被应用程序接受。 我只想做一些事情,例如发送为Postman中的CORS请求的请求
您的意思是您想仅在浏览器中运行的Web应用程序中阻止交叉原始请求?
鉴于浏览器是强制执行CORS限制的唯一工具,并且仅对在实际Web应用程序中运行的代码中的请求来执行此操作 - 不是扩展名的请求,例如Postman的请求,这些请求不受相同的原始策略的限制,Web应用程序是 - 那么您将无法使用CORS来阻止邮递员的请求,或者是从浏览器中未从Web应用程序运行的代码中的代码。
已经设置了该应用程序来执行此操作,但是证明这是有效的最佳方法是什么?
确认该服务没有发送Access-Control-Allow-Origin
响应标头 - 除非它明确配置为执行此操作,否则它永远不会发送,或者是使用某些服务器端编程环境/框架构建的,该环境/框架默认添加Access-Control-Allow-Origin
。
但是,由于浏览器是由于缺乏Access-Control-Allow-Origin
而真正要阻止交叉原始请求的唯一工具,因此您确实只能在Web应用中测试块。
否则,您至少可以在浏览器之外进行测试,以查看服务器返回的响应标头,请求已发送到。在这种情况下,要做的主要事情是确保请求发送Origin
标头(如果请求包含Origin
标头,则仅发送Access-Control-Allow-Origin
,因为浏览器是浏览器是唯一自动发送Origin
的工具。
所以,例如,使用curl
,您需要这样做:
curl -H "Origin: https://example.com" https://service.to.test/