scriptProtect ColdFusion 9

Geo*_*Geo 2 coldfusion coldfusion-9

我正在尝试学习如何使用,scriptProtect但我想知道是否还有其他事情我需要做的,以尽可能保护我的应用程序.此外,scriptProtect是否充当HTMLEditFormat,还是完全独立的东西?

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

Mig*_*l-F 6

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

scriptProtect设置与HTMLEditFormatEncodeForXXXX()功能完全不同.我只想指出scriptProtect可以自定义和/或"全局脚本保护"规则.该设置通过将cf_root/lib/neo-security.xml服务器配置中的文件中定义的正则表达式或cf_root/WEB-INF/cfusion/lib/neo-security.xmlJEE配置中的文件应用于变量值来工作.您可以通过修改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>
Run Code Online (Sandbox Code Playgroud)

这意味着,在默认情况下,在全局脚本保护机制仅查找包含字符串<object<embed<script<applet<metaFORM,URL,CGI,和COOKIE范围,并与替换它们<InvalidTag.您可以增强该正则表达式以查找更多案例和/或更改替换字符串(如果需要).

请参阅本页的"保护变量免受跨站点脚本攻击"部分