Django Book學習筆記(下)

2022-04-07 10:22:42 字數 1941 閱讀 7934

對於django加密,大致使用這樣的格式:

hashtype$salt$hash

原因?我在django中使用了memcached,memcached完全就是基於記憶體的快取框架。memcached有乙個很好的特性是:它在多個伺服器間分享快取的能力。 這意味著您可以在多台機器上執行memcached的守護程序,該程式會把這些機器當成乙個單一快取,而無需重複每台機器上的快取值。 要充分利用此功能,請在cache_backend裡引入所有伺服器的位址,用分號分隔。

注意關於memcached的乙個缺點就是:基於記憶體的快取有乙個重大的缺點。 由於快取的資料儲存在記憶體中,所以如果您的伺服器崩潰,資料將會消失。 顯然,記憶體不是用來持久化資料的,因此不要把基於記憶體的快取作為您唯一的儲存資料快取。 毫無疑問,在django的快取後端不應該用於持久化,它們本來就被設計成快取的解決方案。但我們仍然指出此點,這裡是因為基於記憶體的快取是暫時的。

下面一大段來自複製貼上,不喜勿噴:

#

無安全性的程式

defuser_contacts(request):

user = request.get['

username']

sql = "

select * from user_contacts where username = '%s';

" %username

#execute the sql here...

如果攻擊者在查詢框中輸入 "' or 'a'='a" 。 此時,查詢的字串會構造如下:

select

*from user_contacts where username =

''or'a

'='a

';

解決方案:

一些整合的web框架會自動幫你做好轉義操作,總之別要輕易使用get方法(除非確定是對系統資訊無害或者是自己已經做好了過濾的操作的情況下)

在web應用中, 跨站點指令碼 (xss)有時在被渲染成html之前,不能恰當地對使用者提交的內容進行轉義。 這使得攻擊者能夠向你的**頁面插入通常以 標籤形式的任意html**。    攻擊者通常利用xss攻擊來竊取cookie和會話資訊,或者誘騙使用者將其私密資訊透漏給被人(又稱 釣魚 )。

這種型別的攻擊能夠採用多種不同的方式,並且擁有幾乎無限的變體,因此我們還是只關注某個典型的例子吧。 讓我們來想想這樣乙個極度簡單的hello world檢視:

這個檢視只是簡單的從get引數中讀取姓名然後將姓名傳遞給hello.html模板。 因此,如果我們訪問 ,被呈現的頁面將會包含一以下這些:

<

h1>hello, jacob!

h1>

但是,等等,如果我們訪問 時又會發生什麼呢?

<

h1>hello, <

i>jacob

i>!

h1>

當然,乙個攻擊者不會使用標籤開始的類似**,他可能會用任意內容去包含乙個完整的html集來劫持您的頁面。 這種型別的攻擊已經運用於虛假銀行站點以誘騙使用者輸入個人資訊,事實上這就是一種劫持xss的形式,用以使使用者向攻擊者提供他們的銀行帳戶資訊。

解決方案:

解決方案是簡單的: 總是轉義可能來自某個使用者的任何內容。為了防止這種情況,django的模板系統自動轉義所有的變數值。

django擁有內建工具來防止這種攻擊

LESS學習筆記 下

通過傳參進行匹配,類似js中的if語句 less預編譯 trianger top,w 5px,c f00 trianger w 5px,c f00 pipei pos r pos a pos f pos ppcss輸出 pipei pos pp 避免編譯 less預編譯 test calc1 tes...

Jsp學習筆記(下)

靜態引入的jsp檔案不會被轉譯成servlet,靜態引入有同名變數導致編譯不通過的風險 jsp靜態引入 將file中的 拿到本檔案中,而file檔案並沒有被轉譯 將引入的jsp檔案轉譯後,在當前檔案中呼叫轉譯好的檔案 因為是兩個檔案,顯然可以有同名變數,沒有重名的風險 include file in...

CSS3學習筆記 下

1.用class對元素進行分類 製造紅葡萄酒的葡萄 2.利用id標識元素 1.元素選擇器 p,th,td p em p em 緊鄰 h1 p 緊鄰 2.屬性選擇器 title 1.float元素 1 可以通過css屬性float令元素向左或向右浮動。float屬性的值可以是left right或者n...