在我们的索引文件中,在文件的顶部,我们通常会<cfparam>
列出来自 URL、表单或其他地方的变量。然而,我们收到了很多机器人用类似www.example.com/survey/index.cfm?nPageNumber=-1之类的东西来攻击我们,这意味着像这样的 cfparam:
<cfparam name="request.parameters.nPageNumber" default="1" type="numeric" />
由于机器人在查询字符串中输入的废话,将失败。
我发现自己越来越不得不像这样编写我的 cfparams:
<cfif structKeyExists(request.parameters,"nPageNumber") AND isNumeric(request.parameters.nPageNumber)>
<cfparam name="request.parameters.nPageNumber" default="1" type="numeric" />
<cfelse>
<cfset request.parameters.nPageNumber = 1>
</cfif>
虽然这解决了问题,但我不禁觉得这个解决方案不是最好/最有效的。我使用cfparam
正确还是有更好的方法来做到这一点?