我有一个在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/

10-10 08:02