我很难找到有关在Coldfusion CFC上确保AJAX调用的远程功能安全的信息。可以说,您是在用户通过AJAX调用登录到该网站后,为该用户检索敏感信息的。您这样称呼:
https://www.mySite.com/pathToCFC/MyCFC.cfc?method=getBankInfo&userID=2343
因此,这显然是超级不安全的,因为任何人都可以从浏览器调用此命令并更改userID以获取其他用户的银行信息。
我已经读过有关在远程函数上使用role属性和使用cflogin来验证用户身份的信息,但是即使安装了此功能,您也不必像上述调用一样传递userID吗?经过身份验证的用户仍然无法切换用户ID以发现新用户的银行信息吗?
最佳答案
不要从客户端传递用户标识。用户标识和其他敏感数据应存储在服务器端。实际上,必须将从客户端传递的每一位数据视为可疑并进行验证。
因此,例如,如果您使用cflogin,并且您位于单台服务器或粘性会话服务器上,则将用户ID和其他任何重要信息存储在会话范围内。
在每个请求上,您从会话而不是从客户端提供的内容中获取此数据。
这是User Security in Coldfusion的良好起点