Adobe CQ 5接受任意POST请求

时间:2017-06-20 21:30:35

标签: cq5 aem iis-8 sling

我知道Adobe CQ 5是在Apache Sling(使用JackRabbit)之上构建的。我有点感到困惑的是,为什么网站会通过Dispatcher接受来自外部(未经身份验证的用户)的任意POST请求到发布实例,然后回复HTTP 200 Content Updated。在这种情况下,不应仅允许来自作者实例的内容更新吗?不应该这样的请求遇到HTTP 403响应吗? - 为什么即使没有登录也可以获得HTTP Response 200?

回复看起来像这样:

    {
        "changes": [],
        "referer": "http://www.example.com/content/somesite/en.html",
        "path": "/content/somesite/en",
        "location": "/content/somesite/en",
        "parentLocation": "/content/somesite",
        "status.code": 200,
        "status.message": "OK",
        "title": "Content modified /content/somesite/en"
    }

我现在设置了POST Referrer Filter,以防止任意POST请求' outside'该网站已被接受,但我仍然可以通过在打开网站时在浏览器控制台中键入jquery ajax请求来获得此响应。 我确实想知道这是不是坏事,对Adobe CQ来说真的很新。

用于测试它的JQuery脚本实际上只是这些:

$.ajax({
    url: 'http://www.example.com/content/fasfas',
    type: 'post',
    data: {},
    headers: {
        Accept: 'application/json',
    },
    dataType: 'json',
    success: function (data) {
        console.info(data);
    }
});

提前致谢!

2 个答案:

答案 0 :(得分:4)

这是一个未采取必要措施来保护AEM服务器的问题。 Adobe提供了security checklist以确保部署时AEM安装是安全的。类似的security checklist for the dispatcher也存在。

至于你的情况,很少有明显的问题

  1. 调度程序中的过滤器配置不会拒绝POST 请求,从而允许他们通过调度员并到达AEM实例。
  2. AEM发布商中的匿名用户似乎不仅仅是 读取存储库的权限,从而允许他使用POST请求更改存储库。
  3. 引荐来源过滤器配置也允许来自外部系统的请求(您现在已被阻止)。

答案 1 :(得分:1)

您的调度程序应阻止发布者的所有POST操作。建议在Adobe's official documentation中配置调度程序。

Publisher还应禁用匿名用户的写入权限,并将所有人分组到社区不允许修改的路径。除非您使用CUG,否则应在发布者实例中禁用匿名写入。