OFBiz中的输入检查
OFBiz在文本输入中包含URL encoded数据时会被处理为乱码,已提交bug。
问题是在9ce782f引入的,对应于 OFBIZ-5343。
问题在UtilHttp.canonicalizeParameter,通过在framework/base/config/debug.properties启用调试日志,可以直接看到相关日志。
OFBiz有太多地方对输入做处理,而不是在输出的时候判断是否需要escape,这一机制并不合理,以下是一些讨论:
- https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html
- https://security.stackexchange.com/questions/95325/input-sanitization-vs-output-sanitization
- https://blogs.msmvps.com/alunj/2010/05/31/better-input-validation-or-output-encoding/
- https://www.martinfowler.com/articles/web-security-basics.html
- https://danielw.cn/web-security-xss-csrf
另外,这里有在OFBiz启用的FreeMarker的auto escape的讨论。