带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(5)https://developer.aliyun.com/article/1377433
内容存储库可以识别用户,它知道哪些组是可选的以及哪些访问控制列表应用于该用户。在这个例子中,John Doe 可以读取/content并写入,也可以写入/content/pospai/home。因此,如果用户想在没有任何特权的/conf 中写入,我不需要在应用中强制执行。
坚持下去,这个引擎会为我做到这件事,我不可能在这方面犯错。当然,一旦我做了一次初始的访问控制设置,但那只做了一次,而且很容易审查,确保我们不会出错。
在实践中,这看起来如下所示。如果我去到子树的某一部分,这里我可以检查访问控制定义,我可以看到有一个为作者定义的条目。如果在这里定义了一个条目,它将自动应用于整个子树,我什么都不需要做。
尤其是,它是默认激活的。Apache Sling 的另一个特点是我们有安全性,即 XSS 保护。这意味着当在模板中的脚本中呈现内容时,HTML模板语言引擎意识到它是在 HTML 上下文中编写的,它会根据上下文自动转义输出。如果是 HTML 标签,它知道该怎么做。同样,如果它是一个属性,它知道该怎么确保内容不脱离边界。
你可以在截图中看到,模板消息是一种表达式语言,然后呈现是转义的 HTML。这个消息的对象会解析成一个强 HTML 标签,hello world,并关闭标签。所以默认情况下,不需要做任何事情,我们不用担心转义不安全的内容,但我们不能在这里犯错误。
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(7)https://developer.aliyun.com/article/1377431