【发布时间】:2023-06-22 11:31:01
【问题描述】:
我有一些旧的 ColdFusion 代码。它最初是为 CF9 编写的,但现在在 CF 2016 上运行。
application.cfc
local.esapi = createObject("java", "org.owasp.esapi.ESAPI");
application.esapiEncoder = local.esapi.encoder()
很久以后
常规页面
form.Reason = application.esapiEncoder.encodeForHtml(form.Reason);
我正在考虑将其替换为
form.Reason = encodeForHTML(form.Reason);
这些功能一样吗?
【问题讨论】:
-
是的,
encodeForX()函数在后台使用 OWASP 的 ESAPI。encodeForHTML()是 CF10+ 并且有一个canonicalize参数,它将输入降低到其最低因子。 CF2016 将encodeFor参数添加到cfoutput标记用于输出。还有canonicalize()函数会抛出一个你可以捕捉到的错误。这对于查看是否有人试图在您的表单上进行恶意输入很有用。对输入进行双重或多重编码没有正当理由。encodeForX()函数中的参数不会抛出错误,只是返回结果输出。 -
你应该把它写下来作为答案。
标签: coldfusion owasp esapi coldfusion-2016