Ale*_*xey 9 xss ruby-on-rails liquid shopify
如果以不安全的方式使用Shopify,Shopify会自动转义值,但我没有在液体宝石中找到此功能.
例:
模板: <div data="{{ user_name }}">{{ user_name }}</div>
用户名: '" onclick="alert(\'XSS\')'
Shopify将其呈现为:
<div data="" onclick="alert('XSS')"">" onclick="alert('XSS')"</div>
Run Code Online (Sandbox Code Playgroud)
液体宝石呈现为:
<div data="" onclick="alert('XSS')">" onclick="alert('XSS')"</div>
Run Code Online (Sandbox Code Playgroud)
Ruby代码:
markup = '<div data="{{ user_name }}">{{ user_name }}</div>'
template = Liquid::Template.parse(markup)
template.render!('user_name' => '" onclick="alert(\'XSS\')')
Run Code Online (Sandbox Code Playgroud)
Shopify如何做到这一点?
我知道escape液体中有过滤器,或者我可以在后端逃避值.但Shopify的解决方案看起来更安全:如果忘记对值进行编码并且代码看起来更清晰,则不会出现XSS漏洞:{{ value }}而不是{{ value | encode }}
谢谢
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |