elm中的XSS攻击块有多严重?

How serious are the XSS attack blocks in elm?

我知道 elm 编译器会阻止您将 <script> 标签放入 HTML 文档中。相反,它会将它们切换为 <p>s:

node
     "script"
     [ id "MathJax-script"
     , type_ "text/javascript"
     , src "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"
     ]
     []

我设法解决了这个问题。编译后的 elm 代码(在我的例子中存储在 js 文件中)包含一些特殊代码:

// XSS ATTACK VECTOR CHECKS


function _VirtualDom_noScript(tag)
{
    return tag == 'script' ? 'p' : tag;
}

'script' 字符串可以替换为 'scrip',您可以使用 <script> 标签。

经过一番研究,我发现这可以阻止 XSS 攻击。这种担忧有多严重?我应该使用这个技巧来插入 <script> 标签吗?

您应该问自己的一件事是为什么您要这样做?如果您需要插入脚本,无论如何从 Elm 外部执行此操作通常是更可靠的选择(例如,这允许浏览器在您的 Elm 应用程序有机会 load/initialise 之前开始加载该资源)。

话虽如此,您应该为此担心的主要原因是您无法控制的代码。好消息是 Elm 使针对您的代码执行供应链攻击变得相当困难。如果你削弱这些保护,你可能会使自己容易受到这些保护。但是,不太可能有人会不分青红皂白地尝试这种攻击,因为它通常不会对任何试图这样做的人起作用。

(如果您担心成为特定目标,那么您可能不应该考虑削弱任何安全功能)。