当我阅读有关XSS攻击的更多内容时,我开始知道您要遵循的编码规则取决于字符串周围的上下文。例如,脚本标记内的任何字符串都必须进行JavaScript转义。任何进入正文或 div 标记内的内容都必须进行HTML转义。
我正在用Java编写实用程序类以进行转义(不使用标记直接在JSP中转义)。这是否意味着我必须为我的转义方法提供一个上下文属性,所以应用适当的转义规则?
以下是一个例子:
<pc:fieldRow formId="preview-model-form" fieldPojoId="${fieldSchema.key}" fieldAttribute="${fieldSchema.value}" data="${orderPreviewModel[fieldSchema.key]}"/>
JSP中的上述语句显示 OrderPreviewModel 类的字段。这里的背景是什么,应遵循哪些规则?
为什么不对每个字符串应用所有三个规则?为什么要干扰上下文?