iT邦幫忙

0

Django的安全配置

有查到關於 Django 的安全配置 如下:

實施SSL / HTTPS
可以在Web服務器上啟用SSL / HTTPS,以便加密站點和瀏覽器之間的所有流量,包括否則將以純文本形式發送的身份驗證憑據(強烈建議啟用HTTPS)。如果啟用了HTTPS,則Django提供了許多其他保護措施,您可以使用:
SECURE_PROXY_SSL_HEADER 可以用於檢查內容是否安全,即使內容是從非HTTP代理傳入的也是如此。
SECURE_SSL_REDIRECT 用於將所有HTTP請求重定向到HTTPS。
使用HTTP嚴格傳輸安全性(HSTS)。這是一個HTTP標頭,它通知瀏覽器將來與特定站點的所有連接都應始終使用HTTPS。結合將HTTP請求重定向到HTTPS,此設置可確保在成功建立連接後始終使用HTTPS。HSTS可以通過SECURE_HSTS_SECONDS和SECURE_HSTS_INCLUDE_SUBDOMAINS或在Web服務器上進行配置。
通過將SESSION_COOKIE_SECURE和設置CSRF_COOKIE_SECURE為使用“安全” cookie True。這將確保cookie僅通過HTTPS發送。

↑以上內容 看的不是很懂,請教有相關經驗的朋友們,是否有在settings.py上,一定要建議要設置的安全選項呢?
謝謝您

ex: SESSION_COOKIE_SECURE 一定要設True 才好嗎?之類的,感謝。

看更多先前的討論...收起先前的討論...
froce iT邦大師 2 級 ‧ 2020-01-13 20:48:26 檢舉
https://docs.djangoproject.com/en/3.0/ref/settings/#sessions

這兩個選項就是限制你只能透過HTTPS去傳cookies和CSRF token,預設值是False。
用HTTPS的話當然要開。
jerry168 iT邦新手 5 級 ‧ 2020-01-13 20:58:47 檢舉
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_HTTPONLY = True

請問如果將此二個 設為True的話
那在本機端localhost測試時, 發現在localhost端時,因為是跑http 所以也無法登入了

所以不就變成localhsot端不能加,但布署在server上的settings.py中再加入
SESSION_COOKIE_SECURE = True
這樣的作法 正確嗎?
謝謝您
echochio iT邦高手 1 級 ‧ 2020-01-14 08:55:04 檢舉
首先你的架構需要 SSL 傳輸嗎 ?
有跨 Internet 真實 IP 嗎 ?
這些都考量後再 看看需不需要 SSL
froce iT邦大師 2 級 ‧ 2020-01-14 11:59:46 檢舉
settings.py也是py檔,所以你可以程式化,例如:

if DEBUG is True:
SESSION_COOKIE_SECURE = False
else:
SESSION_COOKIE_SECURE = True

尚未有邦友回答

立即登入回答