我有一个在 CF2016 上运行的应用程序。我们最近添加了 Canonicalize()
和一些其他功能来防止 xss 攻击。使用此应用程序的大多数客户都在 CF2016 上,但有几个在 CF9 上(明年左右会升级)
代码失败,因为 CF9 中没有这样的函数。有很多方法可以处理它,但如果我必须去编写一个自定义的 Canonicalize 函数,我该如何使用原生 CF9 函数对输入进行编码?
最佳答案
我刚才问了一个反方向的问题。请参阅:ColdFusion doing OWASP esapi via Java
规范化是通过 OWASP ESAPI 完成的。首先创建一个 java 对象。它具有所有的编码功能
local.esapi = createObject("java", "org.owasp.esapi.ESAPI");
application.esapiEncoder = local.esapi.encoder();
稍后你可以
myVariable = application.esapiEncoder.canonicalize(myVariable);
有关 org.owasp.ESAPI.encoder()
附带的所有函数的完整列表,请参阅:https://static.javadoc.io/org.owasp.esapi/esapi/2.0.1/org/owasp/esapi/Encoder.html
关于coldfusion - 规范化 CF9 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58878975/