scriptProtect ColdFusion 9

时间:2014-10-27 17:15:05

标签: coldfusion coldfusion-9

我正在尝试学习如何使用scriptProtect,但我想知道是否还需要做一些其他工作才能尽可能保护我的应用程序。另外,scriptProtect是作为HTMLEditFormat还是完全独立的东西?

最后我的应用程序在另一个应用程序ex: example.com/myapp/index.cfm下我想我必须在application.cfc example.com的主要application.cfc下添加scriptProtect吗?如果是这样,我是否应该从主应用程序中获得由此标记引起的错误?我应该编写一个扩展的组件吗scriptProtect并在其中添加{{1}}吗?

1 个答案:

答案 0 :(得分:6)

亨利让你走在正确的轨道上。您绝对不能完全依赖scriptProtect功能。但是我认为可以将它与其他验证方法结合使用。而且,值得一提的是,ColdFusion管理员中有一个全局设置,可以为在该实例下运行的所有应用程序启用scriptProtect。它在管理员中命名为“启用全局脚本保护”,可以在“设置”菜单下找到。

scriptProtect设置与HTMLEditFormatEncodeForXXXX()功能完全不同。我只是想指出scriptProtect和/或“全局脚本保护”规则可以自定义。该设置通过将服务器配置中的cf_root/lib/neo-security.xml文件中定义的正则表达式或JEE配置中的cf_root/WEB-INF/cfusion/lib/neo-security.xml文件应用于变量值来实现。您可以通过修改CrossSiteScriptPatterns变量中的正则表达式来自定义ColdFusion替换的模式。

默认正则表达式定义为:

<var name='CrossSiteScriptPatterns'>
    <struct type='coldfusion.server.ConfigMap'>
        <var name='&lt;\s*(object|embed|script|applet|meta)'>
            <string>&lt;InvalidTag</string>
        </var>
    </struct>
</var>

这意味着,默认情况下,全局脚本保护机制仅查找包含<object<embed<script<applet<meta的字符串FORMURLCGICOOKIE范围,并将其替换为<InvalidTag。您可以增强该正则表达式以查找更多案例和/或更改替换字符串(如果需要)。

请参阅Protecting variables from cross-site scripting attacks section on this page