2017-05-10 76 views
0

我正在django開發一個站點,需要用不同的用戶配置文件登錄才能測試它。目前我將我數據庫中所有用戶的密碼設置爲一個django解密並解釋爲「1234」的字符串。 爲了避免這種情況,我在下面的函數中封裝了默認的登錄名。生產這個代碼是否安全?在開發環境中繞過登錄安全嗎?

def login(request, redirect_field_name=REDIRECT_FIELD_NAME, *args, **kwargs): 
    from django.contrib.auth.views import login as django_login 
    from django.contrib.auth import login as auth_login 
    if settings.DEBUG: 
     redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, '')) 
     if request.method == "POST": 
      user = request.POST.get('username', '') 
      user = Usuario.objects.filter(cpf=user) 
      if user.exists: 
       user = user.first() 
       user.backend = 'django.contrib.auth.backends.ModelBackend' 
       auth_login(request, user) 
       return HttpResponseRedirect(redirect_to) 

    return django_login(request, *args, **kwargs) 
+0

不要忘記從外部窺探中保護開發環境:您認爲這只是開發,並且只能由您使用,但如果它對o即使在非標準的端口上,它也會被機器人黑客入侵。 因此,我從來沒有推薦過短切密碼或安全。 – pbuck

回答

0

你必須瞭解Unit Tests on Django

所以,你可以寫一個程序來創建一些用戶,並與再測試登錄了,畢竟,你可以刪除該用戶的測試

這樣,你做不需要在他們的數據庫中創建很多密碼爲'123'的用戶

+0

只是一個隨機的,因爲我壓扁了一個關鍵的基礎設施問題 - 那是困擾着周的補充:我強烈建議factory_boy for unittest工廠。 https://github.com/FactoryBoy/factory_boy – ACimander