django在安全性上表現出色,但是在日常開發中難免會有沒有注意到的地方,今天我們就講乙個非常有用的技巧。
千萬不要在正式環境中設定debug=true,除非你想跑路
sensitive_variables
眾所周知django的發生異常的時候會有錯誤資訊,弄不好,不懷好意的人就通過這些不經意的資訊,提出到銘感資訊,我們可以使用sensitive_variables處理敏感資訊。
from django.views.decorators.debug import sensitive_variables
@sensitive_variables('user', 'password', 'other')
def process_info(user):
password = user.pass_word
other = user.credit_card_number
name = user.name
...這樣在發生錯誤的時候django會做脫敏處理。
保護所有變數
@sensitive_variables()
def my_function():
...注意:如果有多個裝飾器,需要把這個放在第乙個。
處理post的sensitive_post_parameters
sensitive_post_parameters 和上面的類似只是它是用來處理post請求的。
from django.views.decorato import sensitive_post_parameters
@sensitive_post_parameters('pass_word', 'credit_card_number')
def record_user_profile(程式設計客棧request):
userprofile.create(
user=re程式設計客棧quest.user,
password=request.post['pass_word'],
credit_card=request.post['credit_card_number'],
name=request.post['name'],
)或者處理所有引數
@sensitive_post_parameters()
def my_view(request):
...
如何保護敏感資訊不被篡改
系統中的敏感資訊,如賬戶餘額,需要給予特殊保護,不能被篡改。如何從程式角度給予保證?採用非對稱加解密演算法,原理如下 1 生成一對公鑰和金鑰,使用時必須成對使用。2 公鑰發布給公眾,私鑰自己儲存,需要保證私密性。私鑰不洩露是這套體系生效的前提。3 只有自己用私鑰加密產生的密文,用自己發布出去的公鑰才...
保護記憶體中的敏感資料
某些時候,我們需要在記憶體中儲存一些非常敏感的資料,比如信用卡賬號密碼 軟體註冊碼等等。那麼危險隨之而來,使用一些高階軟體除錯工具檢視程序的記憶體資料,居心不良的人就會有機會拿到這些本該嚴格保密的資料。microsoft windows 2000 sp4 以上版本的作業系統提供了用於資料保護的 ap...
保護記憶體中的敏感資料
感覺安全方面很重要啊.看到好文章,大家分享一下了.某些時候,我們需要在記憶體中儲存一些非常敏感的資料,比如信用卡賬號密碼 軟體註冊碼等等。那麼危險隨之而來,使用一些高階軟體除錯工具檢視程序的記憶體資料,居心不良的人就會有機會拿到這些本該嚴格保密的資料。microsoft windows 2000 s...