如何在现有站点中包含CSRFProvider?

时间:2014-08-08 09:43:10

标签: coldfusion csrf cfc

\ edited:添加了实例

的创建

我想保护网站免受CSRF的侵害。但是因为我们使用的是CF9,所以我无法使用CSRFGenerateToken()。所以我做了一些研究,发现了这个:CSRFProvider。 它是一个cfc,提供针对CSRF攻击的保护。 我的问题是,我如何将其包含在我的网站中?我想使用'hidden-forms'方法,解释如下:

//在您的视图中写入隐藏的表单字段,您必须传递一个“意图”,每个应用程序对于每个应用程序应该是唯一的 #csrf.renderToken(intention="my_unique_form_name")#

//在表单提交时,应用程序必须使用相同的“意图”验证令牌 validSubmission = csrf.verifyToken(intention="my_unique_form_name", token=form._token);

我已将cfc复制到apllications目录中,并在test.cfm中创建了一个带有隐藏字段的表单:

<cfset csrf = new CSRFProvider()>
<cfform method="post" action="test2.cfm" name="qwertz">  
 <cfinput name="csrftoken" type="hidden" value="#csrf.renderToken(intention="qwertz")#">  
 <cfinput name="whatever" type="text" > <br/>  
 <cfinput name="Submit" type="submit" value="blah">  </cfform>  

在test2.cfm中:

<cfif validSubmission = csrf.verifyToken(intention="qwertz", token=form._token); >  
<p>valid</P>  
<cfelse>  
<p>nope</P 
</cfif>

当我试图打开网站时,它总是告诉我:

  

在组件[actual_path_to_my_applycation] /CSRFProvider.cfc中找不到renderToken方法。

提前致谢!

0 个答案:

没有答案