我最近開始在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')
謝謝。