ERB模板中回声阵列的危险性

2024-04-25 18:48:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在erbish模板中有一个python脚本,如下所示:

items = <%= some_array.sort.reverse %>

这种事危险吗?将ruby数组回显到python数组中的正确方法是什么?你知道吗


Tags: 方法脚本模板itemssome数组sortarray
1条回答
网友
1楼 · 发布于 2024-04-25 18:48:39

调用<%= ... %>时的默认呈现是通过被呈现对象的.to_s进行的。根据定义,.to_s不能保证是双向的,而且有些ruby构造一旦呈现,就很难被反序列化(例如哈希)。你知道吗

如果您确切地知道要渲染的数组中的内容(例如字符串列表),这可能是可以的。但是如果它不是一个普通的对象,您可能需要考虑手动呈现每个项,或者使用JSON序列化程序来呈现该对象,而不是依赖于.to_s

items = json.loads('<%= JSON[some_array.sort.reverse] %>')

相关问题 更多 >