jQuery AJAX通过跨域域发布到https web api操作

时间:2014-06-24 18:30:06

标签: jquery ajax security post cross-domain

我有一个天蓝色的网站,其页面需要将包含敏感信息的表单发布到不同域上的服务,该服务上启用了ssl安全性。这是一个MVC web api,带有[RequireHttps]并启用了跨域请求。

通过跨域发布jQuery帖子敏感信息是不对的?这是为什么最初在服务器上禁用CORS以便没有人进行这种操作? 如果这样做可以,我如何保护jQuery ajax传递的信息? enter image description here

jQuery调用可能是这样的:

function workIt()
{
    $.support.cors = true;
    $.ajax({
        url: 'https://foo.net/api/web/doStuff',
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        crossDomain: true,
        type: 'POST',
        success: function (data) {
                doSomething();
        }
    });
}

1 个答案:

答案 0 :(得分:1)

  

通过跨域发布jQuery帖子敏感信息是错误的吗?

没有

  

为什么最初在服务器上禁用CORS以便没有人进行这种操作?

我不确定你原来是什么意思。" CORS是选择加入,因为许多网站'安全性依赖于他们的页面无法从另一个域上运行的脚本中读取的事实。在CORS存在之前就是这种情况,因此为了保持向后兼容性,CORS旨在允许新站点自愿共享数据,而不是突然破坏所有旧站点。

我应该指出,一直允许简单,盲目的跨域POST - 可以将表单的action设置为来自其他站点的资源。在这里,您使用CORS是因为您正在使用数据(对吗?)。另外,由于内容类型,这不是一个简单的请求。

  

如果可以,我怎样才能保护jQuery ajax传递的信息?

它并不多。您当前的代码没有任何明显的红旗。这个代码做得恰到好处的一件事是它将数据发布为application/json,这可以减轻CSRF。