防止密碼被非法獲取

2021-09-05 20:32:16 字數 3672 閱讀 1540

防   止   密   碼   被   非   法   獲   取    

郝   峰    

----windows   雖   然   是   一   個   功   能   強   大   的   操   作   系   統,   但   其   存   在   的   一   些   先   天   性   不   足   給   黑   客    

留   下   了   許   多   可   乘   之   機,   著   名   的bo   程   序   就   是   利   用windows   的   這   些   漏   洞   來   危   害   計   算   機   的  

安   全。   筆   者   最   近   發   現   了   一   個   很   流   行   的   專   門   獲   取edit   框password   的   工   具,   甚   至   其   源   代    

碼   已   在   某   報   紙   上   發   表   了,   這   無   疑   是   對edit   的password   功   能   的   完   全   否   定。   本   文   將   首   先  

分   析   非   法   獲   取password   的   原   理,   然   後   給   出   用visual   c   +   +   來   實   現   保   護edit   框   中   的  

password   不   被   非   法   獲   取   的   對   策。    

一、   非   法   獲   取password   的   原   理    

----edit   是windows   的   一   個   標   準   控   件,   當   把   其   password   屬   性   設   為true   時,   就   會   將   輸   入   的    

內   容   屏   蔽   為   星   號(   *),   從   而   達   到   保   護   的   目   的。   而edit   框   中   的   內   容   可   通   過   發    

wm_gettext,em_getline   消   息   來   獲   取。   黑   客   程   序   就   是   利   用edit   的   這   個   特   性,   首   先   枚   舉   當    

前   程   序   的   所   有   子   窗   口,   當   發   現   枚   舉   的   窗   口   是edit   並   且   具   有es_password   屬   性   時,   則   通    

過sendmessage   向   此   窗   口   發   送wm_gettext   或em_getline   消   息,   這   樣edit   框   中   的   內   容   就   一   目   了    

然   了。    

二、   對password   進   行   保   護    

----由   上   述   分   析   可   看   出,edit   的   漏   洞   在   於   沒   有   檢   查   發   送wm_gettext   或em_getline   消   息   者    

的   身   份,   只   要   找   到edit   窗   口   句   柄,   任   何   進   程   都   可   獲   取   其   內   容。   這   裡   給   出   一   種   簡   單    

的   方   法   來   驗   證   發   送   消   息   者   的   身   份   是   否   合   法。    

----1.   創   建   新cedit   類    

----從cedit   繼   承   一   個   子   類cpasswordedit,   申   明   全   局   變   量g_bauthoridentity   表   明   消   息   發   送   者  

的   身   份:    

bool   g_bauthoridentity;  

----然   後   響   應cwnd   的   虛   函   數defwindowproc,   在   這   個   回   調   函   數   中   進   行   身   份   驗   證:    

lresult   cpasswordedit::defwindowproc  

(uint   message,   wparam   wparam,   lparam   lparam)    

//   合   法   獲   取  

g_bauthoridentity   =   false;  

}  

return   cedit::defwindowproc  

(message,   wparam,   lparam);  

}  

----2.   在   數   據   輸   入   對   話   框   中   做   處   理    

----在   對   話   框   中   申   明   一   個   類   成   員m_edtpassword:    

cpasswordedit   m_edtpassword;  

----然   後   在   對   話   框   的oninitdialog()   中   加   入   下   列   代   碼:    

m_edtpassword.subclassdlgitem(idc_edit_   password,   this);  

----其   目   的   是   將   控   制   與   新   類   做   關   聯。    

----之   後   在   對   話   框   的   數   據   交   換   中   將   身   份   設   為   合   法:    

void   cdlginput::dodataexchange  

(cdataexchange   *   pdx)  

cdialog::dodataexchange(pdx);  

//}afx_data_map  

}  

----這   樣,password   輸   入   框   就   會   受   到   保   護。    

三、   需   要   注   意   的   問   題  

----以   上   的   方   法   僅   針   對vc   程   序,   對   於vb   程   序,   需   要   借   助vc   做   一   個password   的activex   控    

件,   實   現   方   法   與   上   類   似。   以   上   程   序   在visual   c   +   +6.0   上   通   過,   並   且   用   黑   客   程   序  

pwbtool   測   試   通   過。   完   整   演   示   代   碼   請   到   的「   編   程   技   巧」   下   載。

如何防止密碼被非法獲取

問題提出 這兩天大家比較專注在獲取edit 密碼框的密碼 在盜取時 我們如何防範呢?解決方法 此方法針對於通過sendmessage 向此視窗傳送 wm gettext 或em getline 訊息來取得密碼 跟我來.程式實現 方法很簡單,用cwnd defwindowproc 函式攔截得到的訊息 ...

如何防止webservice被非法呼叫

為了使.a x控制代碼有可能反序列化soap頭,首先你需要定義乙個.net類,它代表了暗含的xml schema類。在此例中相應的類如下 然後你需要在webmethod類中定義乙個成員變數來控制乙個頭類的例項,同樣要為webmethods標記 soapheader 屬性。見如下 using syst...

防止非法訪問

正常的我們應該訪問html檔案,但有些人會直接訪問php檔案,如果直接訪問php檔案會出現錯誤,所以我們要防止直接訪問php檔案。如何防止直接來訪問呢?我們需要先判斷使用者輸入的是否為空陣列 boolempty mixed var 如果var是非空或非零的值,則empty 返回false。換句話說,...