Scala Lift - 保护文件免受热链接的强大方法

时间:2012-09-23 21:27:57

标签: scala lift hotlinking

我正在尝试实施一种方法来停止对我的应用中的资源进行热链接和/或未经授权的访问。

我试图添加的方法是我以前在PHP应用程序中使用的方法。基本上,首次调用页面时会设置会话。图像将通过图像标记添加到页面中,并将会话值作为参数:

<img src="/files/image/image1.jpg?session=12345" />

请求图像时,脚本会检查会话是否已设置并与提供的值匹配。如果不满足条件,则服务页面返回null。在代码的最后,我取消了会话,因此来自页面范围之外的进一步请求将返回null。

在lift框架中,这种方法的最佳实现是什么?

提前感谢您的帮助,非常感谢:)

1 个答案:

答案 0 :(得分:0)

您可以使用SessionVar来实现此目的。在SessionVar中,您存储Map[SessionImageId, RealImageId]并在初始化会话时(即首次加载页面时),您将生成一些随机SessionImageId s,您将映射到真实图片ID。在你的html中,你只暴露了阴影SessionImageId,所以没有人可以从id追溯图像。请求图片时,您只需在Map中查找真实内容。

信息:Exploring LiftLift wiki

当然,如果遮蔽ID并不重要,您只需使用SessionVar[Boolean]