我很难找到关于在Coldfusion of上为AJAX调用保护远程函数的信息。假设在用户通过AJAX调用登录到站点后,您正在检索该用户的敏感信息。你可以这样调用:
https://www.mySite.com/pathToCFC/MyCFC.cfc?method=getBankInfo&userID=2343
因此,这显然是超级不安全的,因为任何人都可以从浏览器调用它,并更改userID来获取不同用户的银行信息。
我已经了解了如何在远程函数上使用roles属性并使用cflogin对用户进行身份验证,但是即使这样,您不需要像上面的调用那样传递userID吗?通过身份验证的用户不是仍然可以切换userID来发现新用户的银行信息吗?
发布于 2010-10-17 23:19:22
不要从客户端传递userid。userid和其他敏感数据应该存储在服务器端。事实上,从客户端传递的每一位数据都必须被认为是可疑的,并得到验证。
因此,如果您正在使用cflogin,并且您位于单个服务器或粘性会话服务器上,则将用户in和任何其他关键信息存储在会话范围中。
对于每个请求,您都是从会话中获取此数据,而不是从客户端提供的内容中获取。
这是User Security in Coldfusion的一个很好的起点
发布于 2010-10-18 20:52:43
等等,如果您有用户X需要从服务器请求他的详细信息,那么您不需要他的ID,您已经在会话中了,或者如果您使用cflogin特性,您将拥有getUserAuth()。
如果你有管理员可以看到其他用户的详细信息,你担心他会看到银行的详细信息,你需要的角色,cf的角色或您的自定义解决方案等。
在任何情况下,您都不需要发送显式调用"gimme bank account details for user 3456“。
https://stackoverflow.com/questions/3953531
复制相似问题