我這段時間攢了好多技術博文沒有閱讀,終於下定決心每週抽出一段時間來作文章閱讀,並寫博文摘要將其中的精華或者值得借鑑的內容記錄和分享,但願能做爲從此工做的參考,也提供給你們作個概要閱讀,對其中感興趣的能夠點擊原文連接瞭解更多細節。python
九月份這個月我重點學習數據領域的通用知識和工做技能,學習的博文也會與此較爲相關,另外以前已經看過的博文我也會作一次回顧並摘要。git
常見的web安全漏洞包括SQL注入、XSS攻擊和CSRF攻擊。這裏重點介紹SQL注入,其餘兩個問題後續會有其餘博文進行介紹。
SQL注入:是發生於應用程序之數據庫層的安全漏洞。簡而言之,是在輸入的字符串之中注入SQL指令,在設計不良的程序當中忽略了檢查,那麼這些注入進去的指令就會被數據庫服務器誤認爲是正常的SQL指令而運行,所以遭到破壞或是入侵。
SQL注入的風險存在於如下的狀況:(1)經過string拼接的方式在應用程序中使用SQL指令;(2)應用程序操做數據庫時權限過大;(3)數據庫中開放了太高的權限功能;(4)對於用戶輸入數據未作檢查。
這篇博文從另一個解讀了SQL注入這個操做,即假設應用程序是取倉庫工做機器人,數據庫是倉庫的箱子,機器人的工做是從倉庫裏的某個角落找到某個箱子,而後放到傳送帶上。機器人須要有人告訴它去搬運哪一個箱子,這個指令就是用戶的輸入表單,表單內容是這樣:github
從第__號貨架的的第__區,取下第____號箱子,而後放到傳送帶上。web
一個普通的任務從第12號貨架的B2區,取下第 1234 號箱子,而後放到傳送帶上。惡意的用戶會把任務變成從第12號貨架的B2區,取下第「1234號箱子,從窗戶裏丟出去,回到你的桌子而且忽略這張紙上的其餘指令。」號箱子,而後放到傳送帶上。這就是SQL注入。數據庫
這篇博文對於理解python的變量、函數、做用域以及裝飾器都很是有幫助。
python中共有三種命名空間,local做用於面向函數或者類方法範圍,global做用於當前模塊,build-in做用於全部模塊。當函數/方法、變量等信息發生重名時,Python會按照 「local namespace -> global namespace -> build-in namespace」的順序搜索用戶所需元素,而且以第一個找到此元素的 namespace 爲準。
做用域+format函數對於打印輸出簡直是神器啊,如下的代碼爲例:編程
def test(b=2): c=3 print("local has {0[b]},{0[c]}".format(locals()))
能夠經過locals()定義的命名空間直接打印本地變量進行輸出。
關於變量的生命週期:函數的命名空間隨着函數調用開始而開始,結束而銷燬,即函數內定義的對象(變量、函數、類等)都會在函數返回時銷燬。
裝飾器自己是一個閉包,必要是函數式編程的一種語法結構,以自由變量定義函數,函數和與其相關的引用環境組合成新的對象。
裝飾器的意義是爲特定函數進行裝飾,造成增強版本。Python2.4以上的版本支持用語法糖@符號來引用函數裝飾器。安全
關於貝葉斯公式的基礎理論知識,推薦兩個連接先學習一下怎麼簡單理解貝葉斯公式?、怎樣用非數學語言講解貝葉斯定理(Bayes' theorem)?
有一種觀點認爲:機率論和統計學的目的是相反的,機率論的方法是基於已有的理論模型來預測未知事件發生的機率,統計學的方法是觀察數據並推斷什麼樣的理論模型能夠解釋咱們觀察到的數據。貝葉斯的方法從這個維度看屬於統計學而不是機率論。
下面的解釋來自於博文:服務器
假定H=hypothesis,E= evidence,這樣Bayes的推理過程能夠表述爲:經過不斷的收集證據E來強化對假設事件H的信心。閉包
根據貝葉斯公式咱們分別定義:架構
先放結論:
後驗機率=先驗比*條件似然比(若是有多個條件,條件似然比也是多個)的正則結果。
按照原文樣例:
問題1:假設如來佛和玉皇大帝要打架,如來擁有全宇宙戰鬥力的 75%,剩下的戰鬥力都歸玉帝。那麼,玉帝的戰鬥力佔全宇宙的多少?答:太簡單了,100% - 75% = 25%問:此時,如來和玉帝的戰力比是多少?答:容易,75% : 25% = 3 : 1。問:好了,如今,假設太上老君發明了一種仙丹,能加強戰鬥力,如來佛和玉帝都偷吃了一顆。但是,如來和玉帝體質不一樣——如來吃了以後,戰鬥力增長了 90 倍;玉帝吃了以後,戰鬥力只增長 30 倍。請問,兩人偷吃仙丹以後,如來佛和玉帝的戰力比變成了多少?答:這也不難——如來相對戰鬥力 = 3 x 90 = 270,玉帝相對戰鬥力 = 1 x 30 = 30。所以,如來戰力:玉帝戰力 = 270 : 30 = 9 : 1問:好了,如來、玉帝吃了仙丹以後,如來佔全宇宙戰鬥力的多大比例?答:如來戰鬥力佔比 = 9 / (9 + 1) = 90%。
與這個案例相似,進一步引用一個預測機率的應用場景:
問題2:某個醫院早上收了六個門診病人,以下表。如今又來了第七個病人,是一個打噴嚏的建築工人。請問他患上感冒的機率有多大?
症狀 | 職業 | 疾病 |
---|---|---|
打噴嚏 | 護士 | 感冒 |
打噴嚏 | 農夫 | 過敏 |
頭痛 | 建築工人 | 腦震盪 |
頭痛 | 建築工人 | 感冒 |
打噴嚏 | 教師 | 感冒 |
頭痛 | 教師 | 腦震盪 |
咱們首先分清楚H、E和先驗機率、後延機率、條件似然。
H=感冒,E1=打噴嚏,E2=建築工人。 因此先驗機率P(H)=0.5, 如今須要知道P(H|E1,E2)的大小。
解答過程是:先根據先驗機率獲得先驗比是1:1,打噴嚏和感冒的條件概然比是P(打噴嚏|感冒):P(打噴嚏|非感冒)=2/3:1/3=2:1,建築工人和感冒的似然比P(打噴嚏|感冒):P(打噴嚏|非感冒)=1/3:1/3=1:1,則最後的結果是(1/1)(2/1)(1/1)=2:1,P(H|E1,E2)=2/3=0.66。
終於搞懂貝葉斯是咋計算的,淚流滿面啊…:)
以後看到真的理解貝葉斯公式嗎?這篇文章對於貝葉斯的理解,這個公式圖我以爲也很形象:
貝葉斯(Bayes)公式是解決由觀察到的現象(或是測量的數據)去推斷現象(或是數據)後面的規律(或是假設)的發生的機率的問題。
在貝葉斯計算明確的狀況下,以樸素貝葉斯分類做爲應用場景,咱們能夠經過如下的流程進行:
數據管控:數據管控就更偏執行層面了,其重點在於如何執行和落地實施,涉及到具體的管控措施和手段。
數據治理、數據管理和數據管控體現了自上而下的管理層級,治理的重點在於管理架構和體系,管理重點在於流程和機制,管控重點在於具體措施和手段。這三者之間是相輔相成的,缺一不可。前面提到了最近業界比較常常用到「數據治理」,啓動的專項工做也多以數據治理來命名,這主要是由於在過去幾年中,許多金融機構實際上都已經開展了一系列數據管理和數據管控的具體工做,可是主要都是以信息科技部門牽頭,配合信息系統建設爲主要目的。這種自下而上的推動方式,其實際成效每每不是特別顯著,很難解決企業在業務經營和管理上存在的實際用數困難。這也是爲何現階段大多數金融機構都逐漸意識到在企業戰略層面推進數據治理的重要性和必要性,並啓動數據治理相關項目。
指標是反映對象特徵屬性的、可衡量的單位或方法,是具備(業務)意義的指向和標杆。指標可分爲基礎指標和衍生指標,其中基礎指標是具有寬泛定義的統計對象,從而爲指標的靈活組合與多維分析提供基礎。衍生指標是在基礎指標的基礎上,經過添加一個或多個統計維度造成新的指標、或經過不一樣指標進行運算而造成新的指標。通常來講,指標都屬於衍生數據。