圖靈機:
圖靈機(Turing Machine)是圖靈在1936年發表的 「On Computable Numbers, with an Application to the Entscheidungsproblem」(《論可計算數及其在斷定性問題上的應用》)中提出的數學模型。既然是數學模型,它就並不是一個實體概念,而是架空的一個想法。在文章中圖靈描述了它是什麼,而且證實了,只要圖靈機能夠被實現,就能夠用來解決任何可計算問題程序員
圖靈機的結構包括如下幾個部分:web
都是順序執行,可以進行存儲和計算,也能夠設置相應的計算規則。
- 馮諾依曼體系結構:(1)是一臺真正的計算機。(2)由不一樣部分組成。(3)二進制表示。 - 圖靈機:(1)一個理想狀況下的計算機。(2)只能進行數學計算。(3)字母表示
圖靈機是計算機領域的一個數學模型,而馮諾依曼體系機構是一個計算機模型。sql
做一個不恰當的比喻,「程序=指令+數據」就像是「做文=語法+詞彙」同樣。在計算機中指令就至關於語法,可以將詞彙串聯成句,表達出咱們想表達的意思,也就是說指令和數據一塊兒才能構成程序。自己程序就是計算機想要表達意思的一個集合,沒有數據的支撐,光有指令只能是空中樓閣。在實際編程的時候,咱們每每須要用簡單的數據來證實咱們程序設計的是否合理。所以,「程序=指令+數據」這句話就好理解了,有想法,有工具,才能完成一件事情,計算機程序也是如此。這即是個人理解。數據庫
緩衝區溢出是指程序試圖向緩衝區寫入超出預分配固定長度數據的狀況。這一漏洞能夠被惡意用戶利用來改變程序的流控制,甚至執行代碼的任意片斷。這一漏洞的出現是因爲數據緩衝器和返回地址的暫時關閉,溢出會引發返回地址被重寫。計算機程序通常都會使用到一些內存,這些內存或是程序內部使用,或是存放用戶的輸入數據,這樣的內存通常稱做緩衝區。溢出是指盛放的東西超出容器容量而溢出來了,在計算機程序中,就是數據使用到了被分配內存空間以外的內存空間。而緩衝區溢出,簡單的說就是計算機對接收的輸入數據沒有進行有效的檢測(理想的狀況是程序檢查數據長度並不容許輸入超過緩衝區長度的字符),向緩衝區內填充數據時超過了緩衝區自己的容量,而致使數據溢出到被分配空間以外的內存空間,使得溢出的數據覆蓋了其餘內存空間的數據。經過往程序的緩衝區寫超出其長度的內容,形成緩衝區的溢出,從而破壞程序的堆棧,形成程序崩潰或使程序轉而執行其它指令,以達到攻擊的目的。形成緩衝區溢出的緣由是程序中沒有仔細檢查用戶輸入的參數。編程
XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。好比這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞因爲被駭客用來編寫危害性更大的網絡釣魚(Phishing)攻擊而變得廣爲人知。對於跨站腳本攻擊,駭客界共識是:跨站腳本攻擊是新型的「緩衝區溢出攻擊「,而JavaScript是新型的「ShellCode」。安全
SQL注入能夠分爲平臺層注入和代碼層注入。前者由不安全的數據庫配置或數據庫平臺的漏洞所致;後者主要是因爲程序員對輸入未進行細緻地過濾,從而執行了非法的數據查詢。基於此,SQL注入的產生緣由一般表如今如下幾方面:①不當的類型處理;②不安全的數據庫配置;③不合理的查詢集處理;④不當的錯誤處理;⑤轉義字符處理不合適;⑥多個提交處理不當。
當應用程序使用輸入內容來構造動態sql語句以訪問數據庫時,會發生sql注入攻擊。若是代碼使用存儲過程,而這些存儲過程做爲包含未篩選的用戶輸入的字符串來傳遞,也會發生sql注入。sql注入可能致使攻擊者使用應用程序登錄在數據庫中執行命令。相關的SQL注入能夠經過測試工具pangolin進行。若是應用程序使用特權太高的賬戶鏈接到數據庫,這種問題會變得很嚴重。在某些表單中,用戶輸入的內容直接用來構造動態sql命令,或者做爲存儲過程的輸入參數,這些表單特別容易受到sql注入的攻擊。而許多網站程序在編寫時,沒有對用戶輸入的合法性進行判斷或者程序中自己的變量處理不當,使應用程序存在安全隱患。這樣,用戶就能夠提交一段數據庫查詢的代碼,根據程序返回的結果,得到一些敏感的信息或者控制整個服務器,因而sql注入就發生了。服務器
它們利用存儲程序的特色和漏洞,將惡意程序插入到要執行的程序中,使程序跳轉到攻擊者想要執行的位置執行從而完成攻擊。
防範方法就是引入檢查機制,如關鍵字檢查、關鍵字轉碼。網絡