繁体   English   中英

m.trust() 的安全问题

[英]Security Concerns with m.trust()

我正在尝试使用差异库来记录我页面的用户帖子的编辑历史。 该库为我提供了一个很长的 JSON 数据,用于将差异存储在我的数据库中,我使用相同存储库的 PHP 函数将其转换为带有一些 HTML 代码的表格视图。 这是示例输出:

<table class="diff-wrapper diff diff-html diff-inline">
    <thead>
        <tr>
            <th colspan="2">Differences</th>
        </tr>
    </thead>
    <tbody class="change change-rep">
        <tr data-type="-">
            <th class="sign del">-</th>
            <td class="old">Donec rutrum, odio id tempus consequat, nunc nisi pulvinar dolor, ac faucibus massa erat non est. Integer blandit, eros quis sodales vulputate, erat ex euismod nisl, gravida vestibulum nibh elit pretium quam. Mauris turpis tortor, lacinia vitae purus eget, vulputate testing mollis felis.</td>
        </tr>
        <tr data-type="+">
            <th class="sign ins">+</th>
            <td class="new">Donec rutrum, odio id tempus consequat, nunc nisi pulvinar dolor, ac faucibus massa erat non est. Integer blandit, eros quis sodales vulputate, erat ex euismod nisl, gravida vestibulum nibh elit pretium quam. Mauris turpis tortor, lacinia vitae purus eget, vulputate testing mollis felis
                <ins> testing</ins>.
            </td>
        </tr>
    </tbody>
</table>

然后我从一个 URL(比如 /post/history/{id})请求这个 HTML 数据,用m.trust()函数呈现响应。 该 diff 库还在创建 JSON 数据之前从用户输入中清理 HTML,因此只有<table><tr><td><tbody><thead><ins><del>标签要呈现在前端。

我的问题是我需要担心这种方法吗? 用户能否在到达m.trust()函数之前进入该 HTML 输出并输入一些未经处理的 HTML? 是否可以在事情发生之前处理 URL 的响应?

一旦代码通过 HTTP 提供给用户,用户就可以用它做任何他们想做的事情:例如,这就是 Facebook 在控制台中记录一条消息,警告没有经验的用户不要使用开发工具来做其他人的事情的原因已经要求他们了。 但是鉴于用户可以编写和执行他们想要的任何类型的危险代码,我不会担心这与 Mithril 有何关系。

简而言之,如果您尽可能信任代码的来源,则无需担心 - 它是由服务器上的后端代码生成的,因此足以满足这些目的。

如果您对此领域的疑虑有更多问题,您可能想在 Mithril 聊天室提问: https : //gitter.im/mithriljs/mithril.js? source =orgpage

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM