【发布时间】:2021-06-09 06:08:08
【问题描述】:
我正在尝试利用 postgres 返回纯 json 的特性,所以我向我的 Ecto 模型添加了一个方法,该方法执行一个查询,返回所需的 json。
defmodule BoardApi.Board do
use Ecto.Model
def json_by_id(id) do
sql = "SELECT row_to_json(json) AS result FROM (SELECT array_agg(users) AS users FROM users WHERE id=#{id}) json;"
result = Ecto.Adapters.SQL.query(BoardApi.Repo, sql, [])
return List.first(result.rows) |> Tuple.to_list |> List.first
end
我的问题,这是否具有 sql 注入潜力,是否可以使用准备好的语句之类的东西?
【问题讨论】:
-
快速建议:您可以将
... |> Tuple.to_list |> List.first替换为... |> elem(0)。 -
谢谢@whatyouhide 我正要为此提出第二个问题:-)