Time of Update: 2018-12-03
誰動了我的琴弦——工作階段劫持讓我們看一個最常見的例子——工作階段劫持,10-2所示。圖10-2 工作階段劫持說明10-2所示,受害者Alice正常的登入網站為www.buybook.com,此時她的Session ID是1234567,攻擊者Bob通過網路嗅探獲得了Alice的Session ID和Cookie中的使用者登入資訊,這樣他就可以模仿Alice進行登入和操作了,而此時此刻Alice可能毫無所知。最常見的擷取Session
Time of Update: 2018-12-03
使用Ext.grid.column.Column定義列正如從前面的樣本中看到的,建立Ext.grid.Panel時,必須指定columns選項,該選項要麼是Ext.grid.column.Column數組,要麼是JavaScript對象,該對象中必須包含一個items屬性,該屬性值依然是Ext.grid.column.Column數組——總之,定義Ext.grid.Panel時,必須傳入Ext.grid.column.Column數組來定義各資料列。使用Ext.grid.column.Colum
Time of Update: 2018-12-03
演講達人成長記——用身體提升演講感染力你是否想自信滿滿地站在講台上?你是否想滔滔不絕地發表自己的觀點?《演講達人成長記》,助你早日在講台上叱吒風雲!講座主題:時間:2013年1月26日上午9:45—11:30地點:西單圖書大廈一層東廳主講人:程龍講座內容:1、 主要內容: 演講能力並非與生俱來的,通過鍛煉可以不斷熟練。一場成功的演講,除了好的內容之外,還需要哪些?本場講座,《演講達人成長記》的作者為你講解站姿、手勢、走動、面部表情等組成完美演講的必要條件。2、讀者自由提問及交流互動3、抽獎4、
Time of Update: 2018-12-03
十分鐘完成的作業系統 你相不相信,一個“作業系統”的代碼可以只有不到20行? Example 1. chapter1/a/boot.asm 1 org 07c00h ; 告訴編譯器程式載入到7c00處 2 mov ax, cs 3 mov ds, ax 4 mov es, ax 5 call DispStr ; 調用顯示字串常式 6 jmp $
Time of Update: 2018-12-03
保護你的會話令牌通常我們會採取以下的措施來保護會話。1.採用強演算法產生Session ID正如我們前面用Web Scrab分析的那樣,會話ID必須具有隨機性和不可預測性。一般來說,會話ID的長度至少為128位。下面我們就拿常見的應用伺服器Tomcat來說明如何配置會話ID的長度和產生演算法。首先我們找到{TOMCAT_HOME}\conf\context.xml,然後加入下面一段設定<Manager sessionIdLength="20" ➊
Time of Update: 2018-12-03
身份認證設計的基本準則密碼長度和複雜性策略密碼認證作為當前最流行的身分識別驗證方式,在安全方面最值得考慮的因素就是密碼的長度。一個強度高的密碼使得人工猜測或者暴力破解密碼的難度增加。下面定義了高強度密碼的一些特性。(1)密碼長度對於重要的應用,密碼長度最少為6;對於關鍵的應用,密碼長度最少為8;對於那些最關鍵的應用,應該考慮多因子認證系統。(2)密碼的複雜度有的時候僅有長度約束是不夠的,比如說12345678、11111111這樣的密碼,長度的確是8位,但極容易被猜測和字典攻擊,所以這時候就需要
Time of Update: 2018-12-03
誰在使用我的網站——使用者分類使用者分類在網站分析中,根據使用者的基本資料和行為特徵可以將使用者分為許多類別,衍生出各種各樣的使用者指標,對於使用者總體的統計可以讓我們明確使用者的整體變化情況,而對於使用者各分類的統計分析,可以讓我們看到使用者每個細分群體的變化情況,進而掌握網站使用者的全面情況。某些使用者的分類對於網站的使用者現狀和發展趨勢具有特殊的意義,我們可以著重對這些使用者分類進行更加具體的分析和研究,而首先要做的是對這些使用者的分類規則和使用者指標給出一個清晰的定義。使用者指標隨著網站
Time of Update: 2018-12-03
IRP請求的完成與返回 每當完成了一個以IRP為代表的I/O操作請求的時候,就要執行IRP的善後操作IoCompleteRequest(),這是個宏操作,定義為函數IofCompleteRequest()。#define IoCompleteRequest IofCompleteRequest
Time of Update: 2018-12-03
處理器本身能理解的機器指令是0和1的序列,讓人來寫就要大費周章了,因此人們一直在努力開發各種系統,用人類易於理解的形式來編寫程式。本節僅簡單介紹一下指示處理器工作的機器語言程式的編寫方法。用組合語言編程人類很難書寫處理器能夠理解的0、1序列,也很容易出錯。另外,寫完後回頭看看一堆0和1,根本看不懂會向處理器發出什麼指令,即使出了bug、無法正常運行也毫無辦法。因此,我們將加法指令寫成ADD,減法指令寫成SUB(Subtract),從記憶體讀取資料的載入指令寫成LD(Load),向記憶體寫入資料的
Time of Update: 2018-12-03
理解x86架構的捷徑讀《orange's一個作業系統的實現》有感 對 x86 架構的處理器,業界一向是褒貶不一。但是毫無疑問的是, x86 架構的處理器是迄今為止在市場上最成功的處理器。它既催生了 Intel 、微軟這樣的 業界巨頭,也改變了普通人們的生活。到今天,雖然有 arm 的異軍突起,但是大部分程式員所編寫的程式依然在運行在 x86 架構上。 雖然很多上層的程式員繞過了對 CPU 架構本身的理解,而直接使用進階語言進行編程,但是對 CPU
Time of Update: 2018-12-03
誰在使用我的網站——使用者行為分析前面根據使用者的特徵對使用者做了分類,設定了一些常用的使用者指標和值得關注的使用者指標,基於這些分類使用者指標的分析可以發現使用者運營和推廣中的諸多問題,其中活躍使用者和流失使用者的定義中已經用到了與使用者行為相關的指標,這裡重點介紹常用的使用者行為分析指標以及基於使用者行為的分析。如們以網站的使用者為主體去理解點擊流資料,其實它記錄的就是使用者在網站中的所有行為資料。培訓專家餘世維在講座中常說:行為決定習慣,習慣決定性格,性格決定命運。古語也有類似的話:積行成
Time of Update: 2018-12-03
傳統MVC模式對於大部分面向終端使用者的應用來說,它們都需要具有一個可視化的UI介面與使用者進行互動,我們將這個UI稱為視圖(View)。在早期,我們傾向於將所有與UI相關的操作糅合在一起,這些操作包括UI介面的呈現、用於互動操作的捕捉與響應、商務程序的執行以及對資料的存取,我們將這種設計模式稱為自治視圖(Autonomous View,AV)。自治視圖說到自治視圖,很多人會感到陌生,但是我們(尤其是.NET開發人員)可能經常在採用這種模式來設計我們的應用。Windows
Time of Update: 2018-12-03
使用Ext.grid.Panel產生表格Ext.grid.Panel繼承了Ext.panel.Panel,因此它的很多地方都類似於Ext.panel.Panel,但定義Ext.grid.Panel時必須指定如下兩個選項。Ø store:該選項指定的Store對象負責為該表格提供資料。Ø
Time of Update: 2018-12-03
Looper對檔案描述符的監控與處理上面提到的管道的讀端是一種檔案描述符,那麼其他的檔案描述符,如普通的檔案、裝置檔案和通訊端(包括通訊端對)等的描述符,都可以被Looper用來監控,實作類別似於上面的訊息佇列的喚醒和處理機制。通常,訊息是通過訊息佇列發送的,也可以通過通訊端(比如已建立好串連的通訊端)、裝置檔案來發送;當然,也包括管道。對一個檔案描述符進行監控後,只要有可I/O事件發生,那麼調用了pollOnce的調用者(如某個線程)將被喚醒,然後就可調用指定的處理者(如回呼函數)對到來的資料
Time of Update: 2018-12-03
Controller的啟用與URL路由ASP.NET路由系統是HTTP請求抵達服務端的第一道屏障,它根據註冊的路由規則對攔截的請求進行匹配並解析包含目標Controller和Action名稱的路由資訊。而當前ControllerBuilder具有用於啟用Controller對象的ControllerFactory,現在看看兩者是如何結合起來的。通過第2章“URL路由”的介紹我們知道,ASP.NET路由系統的核心是一個叫做UrlRoutingModule的HttpModule,路由的實現是它通過註
Time of Update: 2018-12-03
Looper中的睡眠等待與喚醒機制C++類Looper中的睡眠和喚醒機制是通過pollOnce和wake函數提供的,它們又是利用作業系統(Linux核心)的epoll機制來完成的。當被監控的檔案(通過epoll_ctl的EPOLL_CTL_ADD添加進去)可I/O時,epoll_wait調用會從睡眠中醒來,這時,可以檢查是哪個(或哪些)檔案描述符對應的檔案可以進行I/O讀寫了,從而做出進一步處理。使用者利用它們就可以擁有睡眠等待和喚醒機制。下面詳述。在Looper的建構函式中,會建立一個管道(下
Time of Update: 2018-12-03
EventThread線程對VSync的分發前面提到,EventThread在接收到VSync後再將它們分發給感興趣的註冊者,分發的過程是在其線程迴圈threadLoop函數中完成的。讀者也可以先閱讀後面一節內容,先瞭解感興趣的註冊者如何得到VSync通知以及系統中可能存在哪些感興趣的註冊者後,再回來閱讀本小節。感興趣的註冊者首先需要建立到EventThread的串連,這個到EventThread的串連將儲存到EventThread的列表中。建立串連的代碼如下(下面的行56,參見檔案EventT
Time of Update: 2018-12-03
EventThread線程對VSync的接收EventThread被設計用來接收VSync事件通知,並分發VSync通知給系統中的每一個感興趣的註冊者。VSync來源自底層硬體驅動程式的上報,對於Android能看到的介面來說,它是來自HAL層的hwc_composer_device的抽象硬體裝置。若硬體不支援,則HWComposer會建立一個線程去類比產生VSync事件通知。一旦工作起來,VSync將像一個脈搏一樣,不斷通知到Surfaceflinger中的EventThread線程,由後者再
Time of Update: 2018-12-03
誰在使用我的網站——使用者忠誠和價值分析前面介紹的都是一些使用者的行為指標和使用者細分,這裡要介紹的是基於每個使用者行為的綜合性的分析和評定,主要包括使用者的忠誠度和使用者的價值。“以使用者為中心”的理論要求網站不斷最佳化改善使用者的體驗,進而提升使用者的滿意度,當使用者的預期不斷被滿足時,使用者就會喜歡上這個網站,進而發展成為網站的忠誠使用者,同時不斷地為網站輸出價值。忠誠使用者不但自身為網站創造價值,而且可以為網站帶來許多隱性的收益,比如品牌和口碑的推廣,帶動其他使用者的進入和成長。所以網站
Time of Update: 2018-12-03
Looper中的訊息佇列處理機制Looper也提供了訊息的定義、訊息的發送、訊息的處理者的自訂和訊息佇列。在其標頭檔Looper.h中,定義了訊息結構體Message,它只有一個類型成員,Message的定義如下(見檔案Looper.h,下同):訊息的處理者可由MessageHandler進行處理:使用者可通過派生出子類來擴充訊息。對訊息的處理,需要在MessageHandler的子類中重載handleMessage函數。它們將被封裝到訊息“信封”MessageEnvolope中,然後送到訊息佇