我试图使用一个diff库来记录我的页面的用户帖子的编辑历史。这个库给了我一个很长的JSON数据,以便让diffs存储在我的数据库中,我正在使用同一个存储库的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() 函数并输入一些未经过处理的之前,用户是否可以进入输出呢?是否可以在事情发生之前处理的响应?
发布于 2020-02-11 10:55:39
一旦通过HTTP向用户提供了代码,用户就可以使用它做任何他们想做的事情:例如,这就是Facebook在控制台中记录一条消息的原因,以警告没有经验的用户不要使用dev工具来做别人要求他们做的事情。但是,考虑到用户可以编写和执行他们想要的任何类型的危险代码,我不担心这与Mithril有什么关系。
简而言之,如果您能够相信代码的源代码,那么您就没有什么可担心的了--它是由服务器上的后端代码生成的,因此对这些目的来说已经足够好了。
如果您对此领域中的问题有更多的疑问,您可能需要在Mithril聊天室:https://gitter.im/mithriljs/mithril.js?source=orgpage中询问。
https://stackoverflow.com/questions/60136079
复制相似问题