如何防止Coldfusion将cfform.js注入头部?

时间:2009-09-25 13:23:43

标签: templates coldfusion code-injection

将HTML模板传递给Coldfusion。模板的head标签具有其他属性:

<head profile="http://abc.com">

问题在于,当基于此模板生成输出时,Coldfusion将其脚本注入head标记内:

<head <script type="text/javascript" src="/CFIDE/scripts/cfform.js"></script>
<script type="text/javascript" src="/CFIDE/scripts/masks.js"></script>
profile="http://abc.com">

这会导致profile="http://abc.com">出现在页面顶部并阻止页面验证。

仅在存在表单标记时才会进行代码注入。如果head标签没有任何属性,则不会发生错误的位置注入。属性的存在是项目要求,不能省略。

是否可以阻止Coldfusion注入脚本?

2 个答案:

答案 0 :(得分:5)

脚本注入仅适用于cfforms,而不适用于标准格式。如果您没有使用任何cfform的增强功能,您只需切换到标准表单即可。

我检查了累积修补程序列表,但没有看到修复此问题。

答案 1 :(得分:2)

我的解决方案:将元标记放在

之后
<html>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<head>

当CF创建页面时,它会将标记放在标记下面但标记上方

<!DOCTYPE html>
<html class=" ext-strict">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script type="text/javascript">/* <![CDATA[ */_cf_loadingtexthtml="<img alt=' ' src='/CFIDE/scripts/ajax/resources/cf/images/loading.gif'/>";
_cf_contextpath="";
_cf_ajaxscriptsrc="/CFIDE/scripts/ajax";
_cf_jsonprefix='//';
_cf_clientid='9851DA49BD375D9722A9D6B1951976AC';/* ]]> */</script><<script type="text/javascript" src="/CFIDE/scripts/ajax/yui/yahoo-dom-event/yahoo-dom-event.js"></script>