这是有问题的功能。问题是它似乎没有被调用。无论pk
是否匹配request.user.id
,用户都可以下载服务器上的任何文件。
def permit(request, pk):
# First I sanitize system_path from request, then...
if int(request.user.id) == int(pk) and int(request.user.id) >= 1:
sendfile(request, system_path)
else:
return render_to_response('forbidden.html')
return HttpResponseRedirect('/notendur/list')
如您所见,它需要pk
并将其与request.user.id
进行比较,如果是这种情况,则会提供该文件。
然后是urls.py
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
#upload urls
(r'^notendur/', include('notendur.urls')),
#This needs to be changed to welcome.html
(r'^$', RedirectView.as_view(url='/notendur/list/')), # Just for ease of use.
#security
url(r'^media/uploads/(?P<pk>[^/]+)', 'notendur.views.permit'),
url(r'^media', 'notendur.views.permit'),
)
这种错误有点突然出现。据我所知,我没有编辑任何与此相关的内容。
我知道函数没有被调用,因为我注释了sendfile()
并放了render_to_response('forbidden.html')
。没有任何影响;用户仍然可以下载未审查的文件。