Web系统安全Tips

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值