Web系统安全Tips

    技术2022-05-11  38

    1.       强制使用IE

      

    private   void  EnsureBrowser() {    //ToDo:Check browser header    const string TOKEN = "MSIE";    string agent = Request.Headers["User-Agent"];    if (agent.IndexOf(TOKEN) == -1)    {        ServerMessageHelper.Show(GetPublicResourceString("ErrorNoPermission"));    }}

     

    以上方法不能区分IEMyIE

     

    this .EnsureBrowser  =   function () {    if(mainGuarder != null)    {        var browserName = "";        browserName = mainGuarder.GetProcessName();        if (mainGuarder.GetProcessName().toLowerCase() != "iexplore.exe"){            location.href("ErrorPage.aspx");            return false;        }    }    return true;}

     

    2.       关闭当前窗口且不提示的方法:

    <object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" ></object>

    window.document.all.WebBrowser.ExecWB(45,1)

    3.       确保全屏

      

    // 确保当前是全屏窗口 this .EnsureFullScreen  =   function () {    if (document.readyState == "complete")    {                     var scrollWidth = 30;        var scrollHeight = 30;          if ((parseInt(document.body.clientHeight)  + scrollHeight) < parseInt(screen.height)){            location.href("startup.aspx");            return false;        }                if ((parseInt(document.body.clientWidth)  + scrollWidth) < parseInt(screen.width)){           location.href("startup.aspx");            return false;        }    }    return true;}

     

    4.       给表格加格线的方法

    rules="all" border="1"  bordercolor="#555555"  style="border-style: Solid;border-collapse: collapse;"

    5.       实现弹出对话框又不影响脚本继续执行,用

      

    // 开启打印等待窗口 function  PrintWaiting(){    subWin  =  ShowDialog( " PrintWaiting.htm " " 328px " " 160px " "" , true , true );  }

     

    6.       最小化窗口API

     

    /* 最小化当前窗口 */ STDMETHODIMP DefendCenter::MinimizeWin(){    HWND hWnd    =    GetActiveWindow();            SendMessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE, 0 );      // GetTcpTable      return  S_OK;}

     

    7.       键盘鼠标钩子

    // Set KeyboardHook LRESULT CALLBACK MLowLevelKeyboardProc( int  nCode, WPARAM wParam, LPARAM lParam) {        BOOL  fEatKeystroke   =   FALSE;         fEatKeystroke   =   TRUE;  // 屏蔽所有键盘按键,直接设为TRUE      return   (fEatKeystroke   ?   TRUE  :  CallNextHookEx( hkb, nCode, wParam, lParam ));    }LRESULT CALLBACK MMouseProc( int  nCode, WPARAM wParam, LPARAM lParam){             if  (nCode  <   0 )    {         return  CallNextHookEx(MousehHook, nCode, wParam, lParam);    }     if  (HC_ACTION  ==  nCode)    {             if (wParam  ==  WM_RBUTTONDOWN) // Disable mouse RButton Down or Up         {                 return   true ;        }         if (wParam  ==  WM_RBUTTONUP)        {                     return   true ;        }    }     return  CallNextHookEx(MousehHook, nCode, wParam, lParam);} /* 开启 */ MousehHook  =  SetWindowsHookEx(WH_MOUSE,MMouseProc,hinstExe, 0 );hkb   =  SetWindowsHookEx(WH_KEYBOARD_LL,MLowLevelKeyboardProc, hinstExe,  0 ); /* 关闭 */ UnhookWindowsHookEx(hkb);UnhookWindowsHookEx(MousehHook);

     

    8.       得到当前进程名称

    取得进程信息辅助类:http://download1.csdn.net/down3/20070618/18093155767.rar

    STDMETHODIMP DefendCenter::GetProcessName(BSTR  * name){    CProcessIterator itp;    DWORD pid =  GetCurrentProcessId();    TCHAR modname[_MAX_PATH];    CProcessModuleIterator itm(pid);    HMODULE hModule  =  itm.First();  //  .EXE      if  (hModule) {        GetModuleBaseName(itm.GetProcessHandle(),            hModule, modname, _MAX_PATH);    }    _bstr_t bstrText  =  _bstr_t(modname);      * name  =  bstrText.copy();     return  S_OK;}

     

     

     


    最新回复(0)