我的控制器中有以下方法:
[AcceptVerbs("GET", "OPTIONS", "HEAD")]
[OutputCache(Duration="3600" VaryByParam="None" VaryByHeader="Access-Control-Request-Headers;Origin")]
public new ActionResult Index()
{
//action body
}
它正在处理GET和OPTIONS(CORS)调用,到目前为止还没有问题。我最近添加了OutputCache属性,并开始想知道是否可以通过调用GET来缓存有缺陷的OPTIONS响应。也就是说,让我们说具有恶意意图的用户使用我改变的CORS标头调用我的GET调用。是否有可能用户使用相同的标题进行OPTIONS调用(这次正确使用),而是从先前缓存的GET获得响应,因此在缓存的持续时间内调整整个OPTIONS调用?
我正在寻找一个信息,如果在创建输出缓存条目时考虑HTTP方法,但却无法在任何地方找到它。我已经在本地进行了测试,看起来GET和OPTIONS输出可能永远不会混淆,无论我多么努力地与标题混淆。如果我知道我描述的内容真的永远不会发生,我会更放心。