2017-06-03 135 views
0

我有一个网站与静态元素,如图像。我想保护它们(这样你就不能使用热链接直接访问它们)。为此我使用了部分“与mod_wsgi的身份验证”,从Django文档: Authentication with mod_wsgi同步Apache注销与Django注销

我不喜欢这样的事实,即用户在有登录两次(一次Django的身份验证,然后阿帕奇AUTH在页面上的图像),但它不是主要问题(如果你知道如何处理这也不错)

我的主要问题是,我退出后,我仍然可以访问受保护的图像。我知道这是因为Apache只使用Djangos check_password方法,但也许有一种方法来同步它?

回答

1

你应该看看阿帕奇“X-SENDFILE”头:https://tn123.org/mod_xsendfile/

它允许Django的检查,如果您的用户可以访问它,如果他的访问被授予的静态文件,然后通过Apache的服务。

使用此解决方案,您的用户不必记录两次,并且您可以拥有任何需要的控制!

我写了一篇博客文章是here nginx的,但它的工作方式相同:)

+0

非常感谢!看起来很有希望,我会试一试:)!所以我只需要将nginx头文件'X-Accel-Redirect'改成Apache'X-SENDFILE'头文件? – losik123

+0

的确,'X-Sendfile'是apache模块使用的头文件,它的工作方式与nginx相同:) – Thom