gpt4 book ai didi

elixir - 如何正确清理 Phoenix 的用户输入服务器端

转载 作者:行者123 更新时间:2023-12-02 05:15:23 24 4
gpt4 key购买 nike

我知道如何清理客户端的用户输入,但我也会在服务器端执行此操作。我知道正确的位置是使用 changeset但到目前为止,我找不到如何正确执行 <script></script> 的示例标签和其他潜在的有害内容,例如 SQL 注入(inject)。因为我希望允许用户更改 HTML 内容并将该 HTML 保存在数据库中,所以我无法使用标准验证,并且显示 raw模板中的 HTML。有人能给我举个例子吗?

最佳答案

phoenix_html 库默认清理用户输入:

<%= "<script>alert("hi")</script>" %>

将显示为:

&lt;script&gt;alert("hi")&lt;/script&gt;

这必须用 raw/1 覆盖:

<%= raw "<script>alert("hi")</script>" %>

将显示为

<script>alert("hi")</script>

如果您想自己执行此操作(例如在 EEx 模板之外),您可以使用 html_escape/1 .

关于elixir - 如何正确清理 Phoenix 的用户输入服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32627945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com