1
sky101001 Oct 7, 2016 via iPad 我觉得可以先验证下用户的输入,确认是个 url 后直接 img src={{}}
|
2
ericls Oct 7, 2016 推荐用 pyquery 这类专门操作 dom 的东西 来操作 dom
最后 再用 白名单过一次就好了 |
3
cheetah Oct 7, 2016 via iPhone
为什么要 | safe ?
|
4
ibigbug Oct 7, 2016 |
7
ibigbug Oct 8, 2016 @makeitall 跟 jinja 的 filter 同样原理。 https://github.com/livid/v2ex/blob/c8af57e2d2c4c8701901fb346cc98a4cde13b54b/tpl/portion/topic_content.html#L1 在这里有引用到,也有 escape ,不过跟图片地址转换无关。
你为什么要问这个 escape 呢? |
9
makeitall OP @ibigbug 还有一个问题,我用{{ content | sinaimg }}的时候发现 html 代码都被 escape 了,然后我加入了一个 e ,{{ content | e | sinaimg }}发现还是全被 escape 了。请问这两个为什么不是后面的 sinaimg 不被 escape 呢?然后我现在的解决办法是只能自定义一个 escape 然后加 safe{{ content | newescape | sinaimg | safe }},然后才能保证用户输入 html 代码的时候能够被 escape 掉。感觉这样很麻烦,有没有更好的办法?
|
10
ibigbug Oct 8, 2016 via iPhone 这个得具体看了,你试试把默认 escape 关掉?
|