我知道如何清理用户输入客户端,但我也会在服务器端进行。我知道使用它的正确位置,changeset
但到目前为止,我找不到如何正确处理<script></script>
标签和其他潜在有害内容(如 SQL 注入)的示例。因为我想允许用户更改 HTML 内容并将该 HTML 保存在数据库中,所以我不能使用标准验证,而是raw
在模板中显示 HTML。有人可以给我一个例子吗?
问问题
2333 次
1 回答
3
该phoenix_html
库默认清理用户输入:
<%= "<script>alert("hi")</script>" %>
将显示为:
<script>alert("hi")</script>
这必须用raw/1覆盖:
<%= raw "<script>alert("hi")</script>" %>
将显示为
<script>alert("hi")</script>
如果您想自己执行此操作(例如在 EEx 模板之外),您可以使用html_escape/1。
于 2015-09-17T11:43:47.773 回答