我最近开始在Django上工作,现在我的应用即将完成,我开始怀疑安全和最佳做法。Django查看安全和最佳做法
我有一个视图,生成一个页面和不同的功能,在页面发布AJAX请求到单个视图。例如,我有一个名为show_employees的视图,我可以通过向视图delete_employee和update_employee传递发布请求来删除和更新员工。
我已经把@login_required装饰这些视图之前,因为我不希望任何人访问这些未经验证的情况做。这个可以吗?
在delete_employee和update_employee视图中,如果它是AJAX POST请求(uisng is_ajax()),我只回应请求。这个可以吗?
当视图成功执行所需操作时会返回'成功',并且在表单中存在验证错误时出现错误,但我仍未处理其他异常。我应该怎么做?我应该通过一个AJAX响应返回标准500页面,如this,通过用try-except块封装视图来处理所有异常?
我还能做些什么来保护我的视野吗?
这里是我的一个样本观点:
@login_required
def add_site(request):
data = {}
if request.method == 'POST':
if request.is_ajax():
form = AddSiteForm(request.user, request.POST)
if form.is_valid():
site = form.save(commit=False)
site.user = request.user
site.save()
data['status'] = 'success'
data['html'] = render_to_string('site.html', locals(), context_instance=RequestContext(request))
return HttpResponse(simplejson.dumps(data), mimetype='application/json')
else:
data['status'] = 'error'
data['errors'] = {}
for field, error in form.errors.iteritems():
data['errors']['id_'+field] = strip_tags(unicode(error))
return HttpResponse(simplejson.dumps(data), mimetype='application/json')
谢谢。