我在Java项目中使用org.owasp.esapi。我使用ESAPI.encoder().forHTML()方法对用户输入进行编码,但此方法将“&”编码为“&”,但我不想更改“&”,因此我想将编码器未编码的“&”字符列入白名单。那么,我如何更改ESAPI.properties文件,以便编码器将此方法列入白名单?请帮助我找到白名单的任何字符的属性。
org.owasp.esapi
ESAPI.encoder().forHTML()
nfeuvbwi1#
ESAPI故意不提供一个简单的方法让你白名单额外的字符。许多人要求没有意识到后果。(在这种情况下,它可能会允许来自双重编码的攻击。)因此,唯一的方法是编写自己的编码器来替换org.owasp.esapi.reference.DefaultEncoder,方法是为ESAPI.Encoder属性指定自己的类,而我们肯定不会这样做 *我建议你这么做。也就是说,如果我可以问,你在这里试图解决什么具体问题?通常只有一个或两个特定的字段,其中需要允许呈现的某些字符通常是被阻止的,并且它被双重编码,因此'&'显示为&''。如果你解释你想要做的特定上下文是什么,我们可以提出比你的建议危险性小的替代方案。
org.owasp.esapi.reference.DefaultEncoder
1条答案
按热度按时间nfeuvbwi1#
ESAPI故意不提供一个简单的方法让你白名单额外的字符。许多人要求没有意识到后果。(在这种情况下,它可能会允许来自双重编码的攻击。)因此,唯一的方法是编写自己的编码器来替换
org.owasp.esapi.reference.DefaultEncoder
,方法是为ESAPI.Encoder属性指定自己的类,而我们肯定不会这样做 *我建议你这么做。也就是说,如果我可以问,你在这里试图解决什么具体问题?通常只有一个或两个特定的字段,其中需要允许呈现的某些字符通常是被阻止的,并且它被双重编码,因此'&'显示为&''。如果你解释你想要做的特定上下文是什么,我们可以提出比你的建议危险性小的替代方案。