Ho iniziato a lavorare su Django e ora la mia app è quasi completata e ho iniziato a chiedermi sicurezza e best practice.Django visualizza sicurezza e best practice
Ho una vista che genera una pagina e diverse funzioni nella pagina posta richieste AJAX a singole viste. Ad esempio, ho una vista chiamata show_employees e posso eliminare e aggiornare i dipendenti passando una richiesta di posta alle viste delete_employee e update_employee.
ho messo @login_required decoratori prima di ciascuno dei questi punti di vista dal momento che non voglio che nessuno di loro si accede senza essere autenticati. Va bene?
Nelle viste delete_employee e update_employee, rispondo solo alla richiesta se si tratta di una richiesta POST AJAX (uisng is_ajax()). Va bene?
Restituisco un 'successo' quando la vista riesce a fare ciò che è necessario e un errore quando c'è un errore di convalida nel mio modulo ma non sto ancora gestendo altre eccezioni. Come dovrei farlo? Devo restituire una pagina standard di 500 attraverso una risposta AJAX come this avvolgendo la vista con un blocco try-except per gestire tutte le eccezioni?
C'è altro che posso fare per proteggere il mio punto di vista?
Ecco un Campione di vista di mine:
@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')
Grazie.