我知道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);
}
});
提前致谢!
答案 0 :(得分:4)
这是一个未采取必要措施来保护AEM服务器的问题。 Adobe提供了security checklist以确保部署时AEM安装是安全的。类似的security checklist for the dispatcher也存在。
至于你的情况,很少有明显的问题
答案 1 :(得分:1)
您的调度程序应阻止发布者的所有POST操作。建议在Adobe's official documentation中配置调度程序。
Publisher还应禁用匿名用户的写入权限,并将所有人分组到社区不允许修改的路径。除非您使用CUG,否则应在发布者实例中禁用匿名写入。