我使用的是ColdFusion 9和jQuery。
我是通过CFAJAXPROXY使用ColdFusion CFCs的新手。我很好奇我的数据库是否有风险,以及如何轻松修补安全漏洞。
我把这个放在页面的顶部:
<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“是否应该仅用于检索数据?
发布于 2011-08-19 05:57:05
不需要,access='remote‘不需要仅用于检索数据,但它确实需要谨慎使用,并了解其安全含义。
以你现在设置的方式,任何人都可以调用将一些东西插入到你的数据库中(假设没有其他的访问控制,我们没有看到)。因此,您可能应该实现某种类型的访问控制来保护此功能和其他功能。
现在我假设你没有在你的质询中加上“容易”两个字,而我会加上“实际”两个字。当涉及到安全性时,很少有“简单”的。
因此,有几种方法可以保护这些方法。这在很大程度上取决于你想怎么做,以及你已经在做什么。
<cflogin>,则可以将roles="<Your Admin role name>"添加到函数中。我从来没有尝试过,但我怀疑它会起作用。(就我个人而言,由于几个原因,我不喜欢这种方法,但它是一个选项)<cfif NOT mySecurityCFC.isAuthorized(COOKIE.CFID,COOKIE.CFTOKEN)><cfreturn /></cfif>
我也不喜欢这种方法。
onCFCRequest()方法来截取请求,并在授权例程中运行它们。这比选项2干净。我想说这是最简单的选项,而且会有效地工作,但我个人更喜欢选项4。我会选择选项4。这听起来可能是一个令人生畏的、非常高层次的过程,在某些方面确实如此,但它实际上比你想象的要容易得多。ColdSpring快速入门指南中概述了这些步骤。http://www.coldspringframework.org/index.cfm/go/documentation
发布于 2011-08-19 05:48:31
好吧..。请记住,如果您有一个可远程访问的方法...任何人都可以调用它。不仅仅是你的AJAX代码。CF服务器不知道请求是否来自您的AJAX代理,也不知道它们是否来自其他任何人,只是进行远程调用。
鉴于此方法执行DB插入,我认为您在这里有点不自在。但是,即使使用读取类型调用,这也是适用的。您需要记住,默认情况下,任何人都可以进行远程调用并执行读取。
您真正需要做的是将某种类型的身份验证和授权放在适当的位置,以便只有经过批准的请求才能进行远程调用。让用户以某种方式建立一个会话(比如登录),并且只接受来自授权会话的远程请求。
发布于 2011-08-19 06:07:37
如果您正在检查是否有人在您的Application.cfc文件中登录,那么这是很好的。AJAX请求就像任何其他请求一样,它将首先通过Application.cfc。
您可以通过在onRequestStart()中放置一个abort并查看没有插入任何内容来测试这一点。它可能会无声无息地失败,不是最优雅的解决方案,但它会工作。
https://stackoverflow.com/questions/7114366
复制相似问题