gpt4 book ai didi

jquery - 当远程访问时,ColdFusion CFC 是否非常安全?

转载 作者:行者123 更新时间:2023-12-03 22:56:55 24 4
gpt4 key购买 nike

我正在使用 ColdFusion 9 和 jQuery。

我对通过 CFAJAXPROXY 使用 ColdFusion CFC 还很陌生。我很好奇我的数据库是否面临风险以及如何轻松修补安全漏洞。

我把它放在页面顶部:

<cfajaxproxy cfc="brands" jsclassname="jsApp">

这是登录后使用的 CFC:

<!--- ADD BRAND  --->
<cffunction name="addBrand" access="remote">
<cfargument name="SiteID" required="true">
<cfargument name="Brand" required="true">
<cfscript>
LOCAL.SiteID = ARGUMENTS.SiteID;
LOCAL.Brand = trim(left(ARGUMENTS.Brand, 50));
</cfscript>
<cfquery name="GetBrands">
INSERT INTO Brands(SiteID, Brand)
VALUES (<cfqueryparam cfsqltype="cf_sql_integer" value="#LOCAL.SiteID#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#LOCAL.Brand#">)
</cfquery>
<cfreturn true>
</cffunction>

这是将数据发送到 CFC 的 jQuery

$("#AddBrand").click(function() {
NewBrand = $("#NewBrand").attr("value");
var jro = new jsApp();
jro.addBrand(NewBrand);
});

那么,这里是否存在很大的安全漏洞? access="remote"应该仅用于检索数据吗?

最佳答案

不,access='remote' 不需要仅用于检索数据,但确实需要谨慎使用并了解安全隐患。

按照您现在设置的方式,任何人都可以调用将某些内容插入您的数据库(假设没有我们没有看到的其他访问控制)。因此,您可能应该实现某种类型的访问控制来保护此功能和其他功能。

现在我假设您没有在问题中添加“轻松”一词,而我将添加“实际上”一词。谈到安全性,很少有“简单”的事情。

因此,您可以通过多种方式来保护这些方法。很大程度上取决于您想如何做以及您已经在做什么。

  1. 如果您使用 <cflogin>您也许可以添加 roles="<Your Admin role name>"到函数。我从未尝试过这个,但我怀疑它会起作用。 (就我个人而言,出于多种原因,我不喜欢这种方法,但它是一种选择)

  2. 您可以在函数顶部放置某种授权代码。

<cfif NOT mySecurityCFC.isAuthorized(COOKIE.CFID,COOKIE.CFTOKEN)><cfreturn /></cfif>

我也不喜欢这种方法。

  1. 您可以使用新的 onCFCRequest() ColdFusion 9 中 App.cfc 的方法来拦截请求并通过授权例程运行它们。这比选项 2 更干净。我想说这是最简单的选项,并且会有效地工作,但我个人更喜欢选项 4。

  2. ColdSpring 项目有一些很棒的工具,用于自动创建和使用远程代理对象,这些对象还可以通过面向方面编程 (AOP) 结合安全性。远程代理和 AOP 的组合非常强大,可以让您在不暴露真正的底层对象的情况下创建远程方法,并拦截和授权对这些方法的每个请求,而无需将代码缝合到每个方法中。事实上,这些方法本身甚至不知道它们受到保护。

我会选择选项 4。这可能听起来像是一个令人畏惧且非常高级的过程,在某些方面确实如此,但它实际上比您想象的要容易实现得多。 ColdSpring 快速入门指南中概述了这些步骤。 http://www.coldspringframework.org/index.cfm/go/documentation

关于jquery - 当远程访问时,ColdFusion CFC 是否非常安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com