當使用@login_required修飾器並設置LOGIN_URL變量時,我發現了一種信息泄漏形式。Django:使用@login_required並設置LOGIN_URL時出現信息泄露問題
我有一個網站,需要所有內容的強制登錄。問題在於,當它是現有頁面時,您將使用下一個變量集重定向到登錄頁面。
所以當沒有登錄和要求:
http://localhost:8000/validurl/
你看這個:
http://localhost:8000/login/?next=/validurl/
,並要求一個不存在的頁面時:
http://localhost:8000/faultyurl/
您看到這一點:
http://localhost:8000/login/
這揭示了一些我不想要的信息。我想重寫登錄方法,迫使下一個空,並在這個子類方法上調用「超級」。
另一個問題是,我的一些測試失敗,沒有設置LOGIN_URL。他們重定向到'/ accounts/login /'而不是'/ login /'。因此,爲什麼我想使用LOGIN_URL,但禁用了「auto next」功能。
任何人都可以對這個問題有所瞭解?
非常感謝。
傑拉德。
國際海事組織,這是半正確的行爲。對於不存在的資源,您應該返回404,對於需要授權查看的現有資源,您應該返回403。換句話說,你不應該直接進入不存在的東西的登錄頁面 - 顯示一個非常空的404頁面。 – 2010-01-11 15:18:55