我這段時(shí)間攢了好多技術(shù)博文沒(méi)有閱讀啰扛,終于下定決心每周抽出一段時(shí)間來(lái)做文章閱讀幔烛,并寫博文摘要將其中的精華或者值得借鑒的內(nèi)容記錄和分享管行,希望能作為今后工作的參考,也提供給大家做個(gè)概要閱讀准脂,對(duì)其中感興趣的可以點(diǎn)擊原文鏈接了解更多細(xì)節(jié)劫扒。
九月份這個(gè)月我重點(diǎn)學(xué)習(xí)數(shù)據(jù)領(lǐng)域的通用知識(shí)和工作技能,學(xué)習(xí)的博文也會(huì)與此較為相關(guān)狸膏,另外之前已經(jīng)看過(guò)的博文我也會(huì)做一次回顧并摘要沟饥。
技術(shù)博文
常見(jiàn)的web安全漏洞包括SQL注入湾戳、XSS攻擊和CSRF攻擊闷板。這里重點(diǎn)介紹SQL注入,其他兩個(gè)問(wèn)題后續(xù)會(huì)有其他博文進(jìn)行介紹院塞。
SQL注入:是發(fā)生于應(yīng)用程序之?dāng)?shù)據(jù)庫(kù)層的安全漏洞。簡(jiǎn)而言之性昭,是在輸入的字符串之中注入SQL指令拦止,在設(shè)計(jì)不良的程序當(dāng)中忽略了檢查,那么這些注入進(jìn)去的指令就會(huì)被數(shù)據(jù)庫(kù)服務(wù)器誤認(rèn)為是正常的SQL指令而運(yùn)行,因此遭到破壞或是入侵汹族。
SQL注入的風(fēng)險(xiǎn)存在于以下的情況:(1)通過(guò)string拼接的方式在應(yīng)用程序中使用SQL指令萧求;(2)應(yīng)用程序操作數(shù)據(jù)庫(kù)時(shí)權(quán)限過(guò)大;(3)數(shù)據(jù)庫(kù)中開(kāi)放了過(guò)高的權(quán)限功能顶瞒;(4)對(duì)于用戶輸入數(shù)據(jù)未做檢查夸政。
這篇博文從另外一個(gè)解讀了SQL注入這個(gè)操作,即假設(shè)應(yīng)用程序是取倉(cāng)庫(kù)工作機(jī)器人榴徐,數(shù)據(jù)庫(kù)是倉(cāng)庫(kù)的箱子守问,機(jī)器人的工作是從倉(cāng)庫(kù)里的某個(gè)角落找到某個(gè)箱子,然后放到傳送帶上坑资。機(jī)器人需要有人告訴它去搬運(yùn)哪個(gè)箱子耗帕,這個(gè)指令就是用戶的輸入表單,表單內(nèi)容是這樣:
從第號(hào)貨架的的第區(qū)袱贮,取下第____號(hào)箱子仿便,然后放到傳送帶上。
一個(gè)普通的任務(wù)從第12號(hào)貨架的B2區(qū)攒巍,取下第 1234 號(hào)箱子嗽仪,然后放到傳送帶上。惡意的用戶會(huì)把任務(wù)變成從第12號(hào)貨架的B2區(qū)柒莉,取下第「1234號(hào)箱子闻坚,從窗戶里丟出去,回到你的桌子并且忽略這張紙上的其他指令常柄。」號(hào)箱子鲤氢,然后放到傳送帶上。這就是SQL注入西潘。
這篇博文對(duì)于理解python的變量卷玉、函數(shù)、作用域以及裝飾器都非常有幫助喷市。
python中共有三種命名空間相种,local作用于面向函數(shù)或者類方法范圍,global作用于當(dāng)前模塊品姓,build-in作用于所有模塊寝并。當(dāng)函數(shù)/方法、變量等信息發(fā)生重名時(shí)腹备,Python會(huì)按照 “l(fā)ocal namespace -> global namespace -> build-in namespace”的順序搜索用戶所需元素衬潦,并且以第一個(gè)找到此元素的 namespace 為準(zhǔn)。
作用域+format函數(shù)對(duì)于打印輸出簡(jiǎn)直是神器啊植酥,以下的代碼為例:
def test(b=2):
c=3
print("local has {0[b]},{0[c]}".format(locals()))
可以通過(guò)locals()定義的命名空間直接打印本地變量進(jìn)行輸出镀岛。
關(guān)于變量的生命周期:函數(shù)的命名空間隨著函數(shù)調(diào)用開(kāi)始而開(kāi)始弦牡,結(jié)束而銷毀,即函數(shù)內(nèi)定義的對(duì)象(變量漂羊、函數(shù)驾锰、類等)都會(huì)在函數(shù)返回時(shí)銷毀。
裝飾器本身是一個(gè)閉包走越,必要是函數(shù)式編程的一種語(yǔ)法結(jié)構(gòu)椭豫,以自由變量定義函數(shù),函數(shù)和與其相關(guān)的引用環(huán)境組合成新的對(duì)象旨指。
裝飾器的意義是為特定函數(shù)進(jìn)行裝飾赏酥,形成加強(qiáng)版本。Python2.4以上的版本支持用語(yǔ)法糖@符號(hào)來(lái)引用函數(shù)裝飾器淤毛。
關(guān)于貝葉斯公式的基礎(chǔ)理論知識(shí),推薦兩個(gè)鏈接先學(xué)習(xí)一下怎么簡(jiǎn)單理解貝葉斯公式低淡?姓言、怎樣用非數(shù)學(xué)語(yǔ)言講解貝葉斯定理(Bayes' theorem)?
有一種觀點(diǎn)認(rèn)為:概率論和統(tǒng)計(jì)學(xué)的目的是相反的蔗蹋,概率論的方法是基于已有的理論模型來(lái)預(yù)測(cè)未知事件發(fā)生的概率何荚,統(tǒng)計(jì)學(xué)的方法是觀察數(shù)據(jù)并推斷什么樣的理論模型可以解釋我們觀察到的數(shù)據(jù)。貝葉斯的方法從這個(gè)維度看屬于統(tǒng)計(jì)學(xué)而不是概率論猪杭。統(tǒng)計(jì)是黑箱子 餐塘,我們通過(guò)手里的黑白球來(lái)推斷箱子里的球的分布;概率則是透明箱子 皂吮,我們通過(guò)箱子里的球的狀況總結(jié)分布戒傻,從而判斷手中球的顏色概率。
下面的解釋來(lái)自于博文:
假定H=hypothesis蜂筹,E= evidence,這樣Bayes的推理過(guò)程可以表述為:通過(guò)不斷的收集證據(jù)E來(lái)強(qiáng)化對(duì)假設(shè)事件H的信心需纳。
根據(jù)貝葉斯公式我們分別定義:
- P(H) ? 先驗(yàn)概率(prior probability) ,只跟總體的概率分布有關(guān)系艺挪,例如有記中垃圾郵件的概率不翩,病人中感冒的分布等等。
- P(H|E) ? 后驗(yàn)概率(posterior probability)麻裳,在E前提下H的概率變化口蝠,后驗(yàn)概率先驗(yàn)概率要基于更多的信息,例如病人有打噴嚏的癥狀下感冒的概率津坑。
- P(E|H) ? 條件似然(conditional likelihood)妙蔗,也成為似然概率,提供后驗(yàn)概率更多的已知信息疆瑰。
先放結(jié)論:
后驗(yàn)概率=先驗(yàn)比條件似然比(如果有多個(gè)條件眉反,條件似然比也是多個(gè))的正則結(jié)果狞谱。*
按照原文樣例:
問(wèn)題1:假設(shè)如來(lái)佛和玉皇大帝要打架,如來(lái)?yè)碛腥钪鎽?zhàn)斗力的 75%禁漓,剩下的戰(zhàn)斗力都?xì)w玉帝。那么孵睬,玉帝的戰(zhàn)斗力占全宇宙的多少播歼?答:太簡(jiǎn)單了,100% - 75% = 25%問(wèn):此時(shí)掰读,如來(lái)和玉帝的戰(zhàn)力比是多少秘狞?答:容易,75% : 25% = 3 : 1蹈集。問(wèn):好了烁试,現(xiàn)在,假設(shè)太上老君發(fā)明了一種仙丹拢肆,能增強(qiáng)戰(zhàn)斗力减响,如來(lái)佛和玉帝都偷吃了一顆」郑可是支示,如來(lái)和玉帝體質(zhì)不同——如來(lái)吃了之后,戰(zhàn)斗力增加了 90 倍鄙才;玉帝吃了之后颂鸿,戰(zhàn)斗力只增加 30 倍。請(qǐng)問(wèn)攒庵,兩人偷吃仙丹之后嘴纺,如來(lái)佛和玉帝的戰(zhàn)力比變成了多少?答:這也不難——如來(lái)相對(duì)戰(zhàn)斗力 = 3 x 90 = 270浓冒,玉帝相對(duì)戰(zhàn)斗力 = 1 x 30 = 30栽渴。因此,如來(lái)戰(zhàn)力:玉帝戰(zhàn)力 = 270 : 30 = 9 : 1問(wèn):好了裆蒸,如來(lái)熔萧、玉帝吃了仙丹之后,如來(lái)占全宇宙戰(zhàn)斗力的多大比例僚祷?答:如來(lái)戰(zhàn)斗力占比 = 9 / (9 + 1) = 90%佛致。
與這個(gè)案例類似,進(jìn)一步引用一個(gè)預(yù)測(cè)概率的應(yīng)用場(chǎng)景:
問(wèn)題2:某個(gè)醫(yī)院早上收了六個(gè)門診病人辙谜,如下表“秤埽現(xiàn)在又來(lái)了第七個(gè)病人,是一個(gè)打噴嚏的建筑工人装哆。請(qǐng)問(wèn)他患上感冒的概率有多大罐脊?
癥狀 | 職業(yè) | 疾病 |
---|---|---|
打噴嚏 | 護(hù)士 | 感冒 |
打噴嚏 | 農(nóng)夫 | 過(guò)敏 |
頭痛 | 建筑工人 | 腦震蕩 |
頭痛 | 建筑工人 | 感冒 |
打噴嚏 | 教師 | 感冒 |
頭痛 | 教師 | 腦震蕩 |
我們首先分清楚H定嗓、E和先驗(yàn)概率、后延概率萍桌、條件似然宵溅。
H=感冒,E1=打噴嚏上炎,E2=建筑工人恃逻。 所以先驗(yàn)概率P(H)=0.5, 現(xiàn)在需要知道P(H|E1,E2)的大小藕施。
解答過(guò)程是:先根據(jù)先驗(yàn)概率得到先驗(yàn)比是1:1,打噴嚏和感冒的條件概然比是P(打噴嚏|感冒):P(打噴嚏|非感冒)=2/3:1/3=2:1寇损,建筑工人和感冒的似然比P(打噴嚏|感冒):P(打噴嚏|非感冒)=1/3:1/3=1:1,則最后的結(jié)果是(1/1)(2/1)(1/1)=2:1,P(H|E1,E2)=2/3=0.66裳食。
終于搞懂貝葉斯是咋計(jì)算的矛市,淚流滿面啊...:)
之后看到真的理解貝葉斯公式嗎?這篇文章對(duì)于貝葉斯的理解诲祸,這個(gè)公式圖我覺(jué)得也很形象:
貝葉斯(Bayes)公式是解決由觀察到的現(xiàn)象(或是測(cè)量的數(shù)據(jù))去推斷現(xiàn)象(或是數(shù)據(jù))后面的規(guī)律(或是假設(shè))的發(fā)生的概率的問(wèn)題浊吏。
在貝葉斯計(jì)算明確的情況下,以樸素貝葉斯分類作為應(yīng)用場(chǎng)景烦绳,我們可以通過(guò)以下的流程進(jìn)行:
-
聊聊有關(guān)數(shù)據(jù)的一些基本概念和常見(jiàn)誤區(qū)(上)聊聊有關(guān)數(shù)據(jù)的一些基本概念和常見(jiàn)誤區(qū)(下)
雖然之前也有做數(shù)據(jù)挖掘和數(shù)據(jù)質(zhì)量方面的工作卿捎,但對(duì)于一些基本概念還是比較模糊,比如模型的變量和模型的指標(biāo)區(qū)別和聯(lián)系径密,數(shù)據(jù)建模和數(shù)據(jù)分析的區(qū)別等等午阵。通過(guò)這兩篇博文可以了解清楚。
數(shù)據(jù)治理:數(shù)據(jù)治理本身屬于一種公司治理活動(dòng)享扔,而且區(qū)別于一般的管理和管控活動(dòng)底桂,數(shù)據(jù)治理強(qiáng)調(diào)的是從企業(yè)的高級(jí)管理層及組織架構(gòu)與職責(zé)入手,建立企業(yè)級(jí)的數(shù)據(jù)治理體系惧眠,自上而下推動(dòng)數(shù)據(jù)相關(guān)工作在全企業(yè)范圍的開(kāi)展籽懦。可以說(shuō)氛魁,數(shù)據(jù)治理是數(shù)據(jù)工作的頂層架構(gòu)設(shè)計(jì)暮顺。
數(shù)據(jù)管理:數(shù)據(jù)管理則更多的偏重于管理流程方面,涵蓋了不同領(lǐng)域的數(shù)據(jù)管理流程和內(nèi)容秀存,包括數(shù)據(jù)需求管理捶码、數(shù)據(jù)認(rèn)責(zé)管理、數(shù)據(jù)標(biāo)準(zhǔn)管理或链、元數(shù)據(jù)管理惫恼、數(shù)據(jù)安全管理、數(shù)據(jù)質(zhì)量管理澳盐、數(shù)據(jù)評(píng)價(jià)管理等各個(gè)領(lǐng)域祈纯,這是數(shù)據(jù)工作的核心內(nèi)容令宿。
數(shù)據(jù)管控:數(shù)據(jù)管控就更偏執(zhí)行層面了,其重點(diǎn)在于如何執(zhí)行和落地實(shí)施腕窥,涉及到具體的管控措施和手段粒没。
數(shù)據(jù)治理、數(shù)據(jù)管理和數(shù)據(jù)管控體現(xiàn)了自上而下的管理層級(jí)簇爆,治理的重點(diǎn)在于管理架構(gòu)和體系革娄,管理重點(diǎn)在于流程和機(jī)制,管控重點(diǎn)在于具體措施和手段冕碟。這三者之間是相輔相成的,缺一不可匆浙。前面提到了最近業(yè)界比較經(jīng)常用到“數(shù)據(jù)治理”安寺,啟動(dòng)的專項(xiàng)工作也多以數(shù)據(jù)治理來(lái)命名,這主要是因?yàn)樵谶^(guò)去幾年中首尼,許多金融機(jī)構(gòu)實(shí)際上都已經(jīng)開(kāi)展了一系列數(shù)據(jù)管理和數(shù)據(jù)管控的具體工作挑庶,但是主要都是以信息科技部門牽頭,配合信息系統(tǒng)建設(shè)為主要目的软能。這種自下而上的推進(jìn)方式迎捺,其實(shí)際成效往往不是特別顯著,很難解決企業(yè)在業(yè)務(wù)經(jīng)營(yíng)和管理上存在的實(shí)際用數(shù)困難查排。這也是為什么現(xiàn)階段大多數(shù)金融機(jī)構(gòu)都逐漸意識(shí)到在企業(yè)戰(zhàn)略層面推動(dòng)數(shù)據(jù)治理的重要性和必要性凳枝,并啟動(dòng)數(shù)據(jù)治理相關(guān)項(xiàng)目。指標(biāo)是反映對(duì)象特征屬性的跋核、可衡量的單位或方法岖瑰,是具有(業(yè)務(wù))意義的指向和標(biāo)桿。指標(biāo)可分為基礎(chǔ)指標(biāo)和衍生指標(biāo)砂代,其中基礎(chǔ)指標(biāo)是具備寬泛定義的統(tǒng)計(jì)對(duì)象蹋订,從而為指標(biāo)的靈活組合與多維分析提供基礎(chǔ)。衍生指標(biāo)是在基礎(chǔ)指標(biāo)的基礎(chǔ)上刻伊,通過(guò)添加一個(gè)或多個(gè)統(tǒng)計(jì)維度形成新的指標(biāo)露戒、或通過(guò)不同指標(biāo)進(jìn)行運(yùn)算而形成新的指標(biāo)。一般來(lái)說(shuō)捶箱,指標(biāo)都屬于衍生數(shù)據(jù)智什。
維度(或稱統(tǒng)計(jì)維度、篩選條件)是對(duì)指標(biāo)進(jìn)行描述的不同視角讼呢,用于標(biāo)示指標(biāo)的不同方面的屬性撩鹿,例如對(duì)貸款余額這個(gè)指標(biāo),可以按照產(chǎn)品類型維度(如個(gè)人消費(fèi)貸款悦屏、個(gè)人住房貸款等)來(lái)分析节沦,可按照資金投放行業(yè)維度(如農(nóng)键思、林、牧甫贯、漁等)來(lái)分析吼鳞、可按照貸款期維度(如長(zhǎng)期、中期、短期等)來(lái)分析涣达、也可以按照貸款狀態(tài)維度(如正常悍手、不良等)來(lái)分析等。一般來(lái)說(shuō)疾党,維度都屬于基礎(chǔ)數(shù)據(jù)。
度量是針對(duì)指標(biāo)而言惨奕,和維度并沒(méi)有關(guān)系雪位,是指標(biāo)的度量衡,本身并無(wú)實(shí)際統(tǒng)計(jì)意義梨撞,如金額雹洗、余額、比率卧波、筆數(shù)时肿、個(gè)數(shù)等。例如港粱,貸款余額這個(gè)指標(biāo)的度量就是余額螃成。而報(bào)表項(xiàng)、統(tǒng)計(jì)項(xiàng)等無(wú)非就是指標(biāo)的應(yīng)用了查坪,企業(yè)所抽象出來(lái)的指標(biāo)都是來(lái)自于各類報(bào)表的具體報(bào)表項(xiàng)或統(tǒng)計(jì)項(xiàng)锈颗,并回過(guò)頭來(lái)應(yīng)用于不同的報(bào)表。
數(shù)據(jù)建模中咪惠,變量指的是自變量x击吱,指標(biāo)指的是因變量y,它們的關(guān)系是y=f(x)遥昧,f是它們的關(guān)系式覆醇,在簡(jiǎn)單的建模分析過(guò)程中,研究f的過(guò)程就是建模過(guò)程炭臭。