只有一个框架不能保护您免受 DoS 攻击。
Vaadin 内置了一些功能来防止攻击,但当然这些功能取决于您如何编写应用程序。
有一个关于 vaadin 安全性的长时间网络研讨会:
https ://vaadin.com/de/blog/-/blogs/vaadin-application-security-webinar
Vaadin 对客户端<->服务器流量进行一些验证,以防止 XSS 和其他攻击。
但是当你做一些特殊的事情时,你可以为这种攻击打开大门。
至于你描述的场景:
初始 vaadin 会话在服务器上占用一些内存(就像任何服务器上的所有其他会话一样)
这个内存占用有多大,取决于小部件的初始数量以及为此加载到内存中的内容。(数据库连接等)
当您有一个非常轻量级的登录页面时,通常这不是问题
但是,如果您显示大型表格和许多其他花哨的东西,那么您将必须有足够的内存来容纳请求的数量。(同样适用于所有其他 http 服务器/应用程序,它们也需要内存)
如果请求数量超过服务器的容量,任何 Web 服务都可能在 DoS 攻击中瘫痪
编辑:
由于安德烈斯回答的要点,我想加强我的问题。
首先,我当然同意,如果您将应用程序放在登录墙后面,那么 DOS 威胁就不会那么大。至少您可以识别攻击用户。而且登录页面本身可以是轻量级的,甚至不能用 Vaadin/RAP 实现。由于 Vaadin/RAP 应用程序最有可能在 RIA 风格的 Intranet 设置中使用,因此 DOS 场景不会使它们在这些设置中的使用无效。
但至少这两个框架本身都在互联网上公开了无需登录的演示页面:参见http://www.eclipse.org/rap/demos/和 http://demo.vaadin.com/dashboard/
这些不是简单的页面,并且可能会使用相当多的内存。
我担心的是这样一个场景,一个非访问限制的互联网页面:一旦这些框架响应了一个请求,它们必须为该请求保留服务器端内存相当长的一段时间(比如 HTTP 会话的经典 30 分钟,至少在分钟刻度)。或者换一种说法,如果应用程序在相当长的时间内为每个初始用户请求保留内存,那么它很容易受到 DOS 攻击。
将此与不需要用户标识的旧式往返 Web 应用程序进行对比。决定返回什么所需的所有信息都包含在请求中(路径、参数、http 方法……),因此无状态服务器是可能的。如果用户与这样的应用程序交互,应用程序仍然可以在客户端上自由地存储会话持久数据(cookie 中的购物车内容等)。