久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

黑客竊取密碼的原理及防范

2004-02-29 eNet&Ciweek

  三、防范措施

  既然我們搞清除了黑客軟件普遍采取的手法,那我們自然能制訂出一套防范其攻擊的措施來。下面我們就要對Password進行保護。

  從以上分析我們可以看出:Edit控件的漏洞主要在于沒有對發(fā)送WM_GETTEXT或EM_GETLINE消息者的身份進行檢查,只要能找到Edit窗口句柄,任何進程都可獲取其內(nèi)容。所以必須要對發(fā)送消息者的身份進行驗證,這里給出一種方法來驗證發(fā)送消息者的身份是否合法:

  1.創(chuàng)建新CEdit類

  從CEdit繼承一個子類CPasswordEdit,申明全局變量g_bSenderIdentity表明消息發(fā)送者的身份: BOOL g_bSenderIdentity;

  然后響應(yīng)CWnd的虛函數(shù)DefWindowProc,在這個回調(diào)函數(shù)中進行身份驗證:


  LRESULTCPasswordEdit:efWindowProc (UINTmessage,WPARAMwParam,LPARAMlParam)
  {
  //對Edit的內(nèi)容獲取必須通過以下兩個消息之一
  if((message==WM_GETTEXT)   (message==EM_GETLINE))
  {
  //檢查是否為合法
  if(!g_bSenderIdentity)
  {
  //非法獲取,顯示信息
  AfxMessageBox(_T ("報告:正在試圖竊取密碼!"));
  return 0;
  }
  //合法獲取
  g_bSenderIdentity=FALSE;
  }
  return CEdit:efWindowProc (message,wParam,lParam);
  }

  2.在數(shù)據(jù)輸入對話框中做些處理

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

  CpasswordEdit m_edtPassword;

  然后在對話框的OnInitDialog()中加入下列代碼:
  m_edtPassword.SubclassDlgItem(IDC_EDIT_PASSWORD,this);

  將控制與新類做關(guān)聯(lián)。

  之后要在對話框的數(shù)據(jù)交換函數(shù)中將身份設(shè)為合法:

  void CDlgInput:oDataExchange (CDataExchange*pDX)
  {
  //如果獲取數(shù)據(jù)
  //注意:對于CPropertyPage類這里不需要 if (pDX->m_bSaveAndValidate)條件
  if(pDX->m_bSaveAndValidate)
  {
  g_bSenderIdentity=TRUE;
  }
  CDialog:oDataExchange(pDX);
  //{{AFX_DATA_MAP(CDlgInput)
  DDX_Text (pDX,IDC_EDIT_PASSWORD,m_sPassword);
  //}}AFX_DATA_MAP
  }

  這樣,Password輸入框就擁有了合法身份,會受到保護。

  結(jié)論:

  以上的方法僅針對VC程序,對于其他語言如VB、Delphi等語言,需要借助VC做一個Password的ActiveX控件,實現(xiàn)方法與上述方法基本類似。以上程序均用VisualC++6.0編制調(diào)試通過。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com