\ 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方法。
提前致谢!