Phoenix中的原子键与字符串键

Ell*_*son 19 elixir phoenix-framework

在新的Programming Phoenix书中,Chris McCord说这是关于使用字符串和原子键来控制器动作参数:

在我们控制器的world动作中,外部参数有字符串键,"name"=> name,而在内部我们使用name:name.这是整个凤凰城遵循的惯例.外部数据是不安全的,所以我们明确匹配的字符串键,然后我们的应用程序边界像控制器和渠道将它们转换成原子键,我们将依靠其他地方里面凤凰.

但是,我不清楚为什么使用字符串键比原子键更安全.为什么字符串键在这里更安全?

dav*_*avo 25

默认情况下,Erlang VM中的最大原子数为1048576.因此,通过将外部值转换为原子,您将填充全局原子表,而不是垃圾回收.因此,您很容易受到拒绝服务攻击.

资源

相关的答案