《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 防Web攻擊的登錄窗口程序設計
防Web攻擊的登錄窗口程序設計
來源:微型機與應用2014年第5期
王命全,張祖蓮,李景林
(新疆氣象局 新疆興農網信息中心,新疆 烏魯木齊830002)
摘要: 目前網絡安全問題已是大家普遍關注的問題,網絡黑客攻擊給很多單位造成巨大的損失。如何減少網絡攻擊已是很多相關研究人員重點研究方向。系統登錄窗口是絕大多數用戶使用系統的首要入口,也是黑客攻擊的主要目標。所以如何設計好登錄窗口,對一個系統的安全來說至關重要。本文從10個方面考慮如何設計登錄界面。
Abstract:
Key words :

摘  要: 目前網絡安全問題已是大家普遍關注的問題,網絡黑客攻擊給很多單位造成巨大的損失。如何減少網絡攻擊已是很多相關研究人員重點研究方向。系統登錄窗口是絕大多數用戶使用系統的首要入口,也是黑客攻擊的主要目標。所以如何設計好登錄窗口,對一個系統的安全來說至關重要。本文從10個方面考慮如何設計登錄界面。
關鍵詞: 網絡安全;登錄窗口;Web攻擊;黑客攻擊;程序設計

 目前網絡攻擊現象十分嚴重,給很多企業和單位造成很大程度的破壞。網絡安全問題一直是很多單位重視的問題。目前所有交互性系統或用戶查詢系統類,都需要涉及到登錄窗口。網絡攻擊者也主要是攻破登錄窗口這個界面,才能進入應用系統,進行操作相關的數據或應用程序。可見登錄窗口對系統的作用是至關重要的。現在Web系統直接部署在網絡上,任何人都可以訪問到,安全問題是很多系統擔心的問題。
 本文的防Web攻擊登錄窗口設計主要從程序設計角度來講,針對一般的Web系統,例如論壇、留言等用戶能自己登錄后發布信息的窗口。對于銀行等安全性要求極高的系統來說,除了本身的Web設計外,還必須借助其他如U盾等外界硬件設備來保證其足夠安全性。
1 關于提高Web安全性的相關研究
1.1 借用外界硬件設備來提高安全性

 (1)基于可信平臺模塊(TPM)的用戶登錄可信認證。該認證方式是利用PC機USB接口外接TPM,將用戶的身份信息、相關的密鑰信息等存儲在TPM中,并利用USBKEY技術、動態的口令技術來確保用戶身份的真實可信[1];(2)用戶登錄端程序嵌入到還原程序當中通信代理服務,用戶端和服務器端分開響應[2]。
以上的研究主要從硬件來考慮,對于一般的論壇類系統不可能讓每個用戶發篇帖子還要單獨配置相關的硬件。
1.2 主要用軟件設計來提高安全性
 (1)以著名的RSA算法和DES算法為基礎,提出一種互補性的混合數據加密方案及其實現過程[3];(2)安全減少用戶登錄次數,在分布式環境中基于Web服務的用戶單點登錄機制,使得用戶只需登錄一次即可完成復雜業務[4]。
1.3 程序配合數據庫設置
 過濾特殊字符,分配數據庫賬戶權限,正確使用存儲過程,確保輸入的合法性,對敏感數據加密存儲,嚴格進行錯誤處理[5]。此研究主要從軟件設計上考慮,用戶可以借鑒,設計考慮的并不全面,對于不同的攻擊不一定能很好地預防。關于數據庫設置,對于網絡管理員來說,可以借鑒。
本文主要從軟件設計方面來考慮不同用戶不同需要及各種有關預防策略。
2 程序設計
 登錄窗口要設計好,首先考慮的方面要全,攻擊者不可能用所有的方法去試探,但僅用其中的部分要素就可以。本文將列出一部分常見的實用的攻擊及預防的策略。
 (1)防SQL注入漏洞攻擊
 目前很多登錄程序在設計上存在一個很大的隱患就是直接寫SQL語句進行驗證登錄,即黑客輸入任意的用戶名、密碼后,只要在后面輸入“′1′or′1′=′1′”成為選擇語句,驗證就會輕松通過,進入后臺,訪問數據庫。換一種方法去驗證用戶名和密碼,就可以有效地預防這類現象。
代碼例如:
 conn.Open();//打開數據庫
 SqlCommand cmd=conn.CreateCommand();
 cmd.CommandText="select*from用戶表where用戶名=@UserName and密碼=@pwd";
 cmd.Parameters.Add(new SqlParameter("UserName",txtUserName.Text));
 cmd.Parameters.Add(new SqlParameter("pwd",txtpwd.Text));
 (2)加入輸入密碼次數
 目前電腦配置也越來越高,很多相關黑客破解密碼的軟件,黑客會用一個配置較好的主機去破解用戶名的密碼,直到破解為止,計算機的運行速度特別快,一般數字密碼很快就會破解。因此在登錄窗口要設置用戶登錄輸入密碼的次數,如輸入密碼次數不超過3次,這樣才能大大減少被破解的機會。如果用戶登錄成功,錯誤次數會自動清零。以免影響正常用戶的正常登錄。
核心代碼例如:
DataTable dt=SqlHelp.ExecuteDataTable("select* from用戶表where用戶名=@UserName and密碼=@pwd",
new SqlParameter("UserName",uid.Text));new SqlParameter("pwd",pwd.Text));
if(dt.Rows.Count<=0){MessageBox.Show("用戶名不存在!");return;}
else
{
DataRow row=dt.Rows[0];
int errorTimes=Convert.ToInt32(row["ErrorTimes"]);
if(errorTimes>=3)
{MessageBox.Show("登錄錯誤次數過多!");return;}
string dbpassword=Convert.ToString(row["Password"]);
if(dbpassword==pwd.Text)
{MessageBox.Show("登錄成功!");
SqlHelp.ExecuteNonQuery("Update用戶表Set ErrorTimes=0 where用戶名=@UserName",}
else{SqlHelp.ExecuteNonQuery("Update用戶表Set ErrorTime=ErrorTimes+1 where UserName=@UserName",new SqlParameter("UserName",pwd.Text));
MessageBox.Show("密碼錯誤!");}
}
 (3)限制同一IP多次申請注冊
 如果用戶一直注冊,當作攻擊的一種類型,當申請次數達到一定數據,該用戶不能再申請。主要由瀏覽器緩存暫時存下用戶的相關信息如IP等,用于記錄用戶申請帳戶次數。
核心代碼:
 Form frmRequestAnAccount=CacheManager.Instance.GetForm(assemblyName,IP);//獲取IP申請用戶名次數
 If(frmRequestAnAccount.ShowDialog()==DialogResult.OK)
//次數達到某一限制,彈出對話框
{this.btnRequestAnAccount.Enabled=false;}
//禁止該用戶再申請帳戶
 (4)判斷當前用戶是否在線,為false方可注冊
BaseSystemInfo.CheckOnLine=false;//當前用戶若不在線
BaseSystemInfo.AllorNullPassword=true;//可以注冊
 (5)核實是否記錄日志
BaseSystemInfo.RecordLog=true;//確定記錄
 (6)重要的應用登錄后寫入注冊表
 輸入正確用戶名和密碼后,寫入注冊表,即使該用戶暫時沒權限,發生異常,則寫入XML。
 核心代碼如下:
If(this.chkRememberPassword.Checked)
{registryKey.SetValue(BaseConfiguration.CURRENT_USERNAME,SecretUtil.Encrypt(userInfo.Username));
registryKey.SetValue(BaseConfiguration.CURRENT_PASSWORD,SecretUtil.Encrypt(this.txtPassword.Text));}
Else
{registryKey.SetValue(BaseConfiguration.CURRENT_USERNAME,string.Empty);
registryKey.SetValue(BaseConfiguration.CURRENT_PASSWORD,string.Empty);}
(7)對鍵盤上的回車進行處理
相關代碼(用戶按鍵盤Enter也可以登錄):
if(e.KeyChar==13)
{If(this.CheckInput())//檢查輸入的有效性
{This.Login();//用戶登錄}
}
(8)多語言加載,如果有外籍人員
ResourceManagerWrapper.Instance.LoadResources(Application.StartupPath+@”\語言包路徑\”);
//從當前指定的語言包讀取信息
(9)添加驗證碼
目前網絡上有多種驗證碼,稍加修改,明白其中的成圖原理,都可以改成自己常用的開發語言進行使用。
例如下面生成驗證碼相關核心代碼:

 


int fSize=FontSize;
int fWidth=fSize+Padding;
int imageWidth=(int)(code.Length*fWidth)+4+Padding*2;
int imageHeight=fSize*2+Padding;
System.Drawing.Bitmap image=new System.Drawing.Bitmap(imageWidth,imageHeight);
Graphics g=Graphics.FromImage(image);
g.Clear(BackgroundColor);
Random rand=new Random();
if(this.Chaos)//給背景添加隨機生成的燥點
{Pen pen=new Pen(ChaosColor,0);
int c=Length*10;
for(int i=0;i<c;i++)
{int x=rand.Next(image.Width);
int y=rand.Next(image.Height);
g.DrawRectangle(pen,x,y,1,1);}
}
int left=0,top=0,top1=1,top2=1;
int n1=(imageHeight-FontSize-Padding*2);
int n2=n1/4;top1=n2;top2=n2*2;Font f;Brush b;
int cindex,findex;
for(int i=0;i<code.Length;i++)
//隨機字體和顏色的驗證碼字符
{cindex=rand.Next(Colors.Length-1);
findex=rand.Next(Fonts.Length-1);
f=newSystem.Drawing.Font(Fonts[findex],
fSize,System.Drawing.FontStyle.Bold);
b=new System.Drawing.SolidBrush(Colors[cindex]);
if(i%2==1){top=top2;}
else{top=top1;}left=i*fWidth;
g.DrawString(code.Substring(i,1),f,b,left,top);}
//畫一個邊框 邊框顏色為Color.Gainsboro
g.DrawRectangle(new Pen(Color.Gainsboro,0),0,0,image.Width-1,image.Height-1);
g.Dispose();
//產生波形
image=TwistImage(image,true,8,4);
return image;
 (10)客戶端和服務器端都驗證,防止黑客禁掉客戶端程序
 登錄是用戶進入系統的首要窗口,攻破登錄,對非法用戶操作數據就很容易了,開發Web程序時應當重視登錄窗口的設計,做好程序代碼的安全性檢查,設置好服務器和數據庫的安全,雖然沒有絕對的安全,但各種方面小心防范,就可以從很大程度上保證Web服務器的安全。
本文從以上10個方面考慮防Web攻擊登錄窗口設計,設計的登錄窗口系統已在實際系統中使用一年半時間,目前發現攻擊的次數越來越少。隨著網絡的發展,可能有更多的情況需要考慮,本文將不斷優化改進。
參考文獻
[1] 譚良,周明天.一種新的用戶登錄可信認證方案的設計與實現[J].計算機應用,2007,27(5):1070-1072.
[2] 王書海,劉明生,肖眾.機房管理系統用戶登錄認證方案設計[J].實驗室研究與探索,2008,24(2):37-38.
[3] 伍華健.公開密鑰密碼體系在網絡安全中的應用研究[J].微計算機信息,2006,22(43):14-17.
[4] 胡毅時,懷進鵬.基于Web服務的單點登錄系統的研究與實現[J].北京航空航天大學學報,2004,30(3):236-239.
[5] 郜激揚.基于Web服務的數據庫注入攻擊與防范[J].華北水利水電學院學報,2008,29(1):89-91.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产一区二区黄| 亚洲小说春色综合另类电影| 国产精品xvideos88| 欧美高清自拍一区| 久久夜色撩人精品| 久久精品视频在线播放| 欧美一区激情视频在线观看| 午夜欧美大片免费观看| 亚洲在线免费视频| 一区二区三区|亚洲午夜| 亚洲美女视频在线观看| 亚洲人www| 亚洲伦伦在线| 日韩视频一区二区| 99re6这里只有精品视频在线观看| 亚洲高清在线播放| 亚洲电影在线看| 亚洲欧洲免费视频| 亚洲精品自在久久| 99v久久综合狠狠综合久久| 99re6热在线精品视频播放速度| 亚洲精品资源| 一区二区三区日韩| 亚洲小视频在线观看| 亚洲系列中文字幕| 午夜精品久久久久影视| 欧美一区永久视频免费观看| 久久国产精品99国产精| 久久综合成人精品亚洲另类欧美| 久久免费国产精品1| 另类av导航| 欧美日本中文字幕| 国产精品第十页| 国产欧美在线| 1024精品一区二区三区| 亚洲人午夜精品| 中日韩在线视频| 亚洲欧美中文日韩v在线观看| 欧美在线看片a免费观看| 亚洲欧洲日产国码二区| 一区二区黄色| 欧美在线视频不卡| 麻豆精品视频| 欧美三级特黄| 国产亚洲精品成人av久久ww| 亚洲第一黄色网| 在线亚洲高清视频| 欧美在线看片| 99这里只有久久精品视频| 亚洲一区免费看| 久久精品亚洲乱码伦伦中文| 欧美1区2区视频| 欧美特黄一区| 韩国av一区二区三区在线观看| 亚洲高清不卡| 亚洲综合电影| 亚洲国产一区二区精品专区| 一区二区三区日韩欧美| 欧美在线999| 欧美精品二区| 国产欧美精品一区二区色综合| 亚洲春色另类小说| 亚洲视频一区二区| 久久精品亚洲国产奇米99| 亚洲少妇自拍| 老司机67194精品线观看| 欧美午夜一区二区| 伊人影院久久| 亚洲综合国产激情另类一区| 亚洲激情电影中文字幕| 亚洲欧美日韩国产精品| 快播亚洲色图| 国产精品久久久久一区二区三区 | 欧美精品一卡二卡| 国产欧美一区二区色老头| 亚洲七七久久综合桃花剧情介绍| 亚洲欧美日韩一区| 亚洲视频网站在线观看| 美女精品国产| 国产欧美日韩一区二区三区| 亚洲人妖在线| 亚洲国产成人不卡| 欧美一区二区三区播放老司机| 欧美国产精品日韩| 国产一区高清视频| 亚洲尤物在线| aaa亚洲精品一二三区| 久久综合影音| 国产一区二区看久久| 在线视频精品一| 日韩视频永久免费观看| 六月婷婷久久| 国产一区二区三区精品欧美日韩一区二区三区 | 在线一区二区三区做爰视频网站| 亚洲国产精品传媒在线观看 | 欧美一区视频在线| 亚洲欧美一区二区三区极速播放| 欧美激情按摩| 在线免费观看日本欧美| 欧美在线观看你懂的| 性欧美8khd高清极品| 欧美日韩在线另类| 亚洲精品国产视频| 亚洲人成人99网站| 久久一区二区三区国产精品| 国产亚洲欧美中文| 性伦欧美刺激片在线观看| 欧美一区二区三区视频免费| 欧美性猛交视频| 99这里只有精品| 一区二区成人精品| 欧美女激情福利| 亚洲精品乱码视频| 99精品国产高清一区二区| 欧美高清hd18日本| 亚洲国产日韩欧美在线99 | 欧美+亚洲+精品+三区| 黄色亚洲精品| 亚洲成人直播| 另类尿喷潮videofree| 国内精品美女在线观看| 久久av一区二区三区漫画| 久久久久国产成人精品亚洲午夜| 国产欧美精品在线播放| 午夜免费电影一区在线观看| 欧美主播一区二区三区美女 久久精品人| 国产精品第三页| 亚洲一区中文字幕在线观看| 午夜伦理片一区| 国产乱子伦一区二区三区国色天香| 亚洲一区二区三区视频播放| 欧美亚洲一区二区在线| 国产精品专区一| 欧美一区二区精品| 久久久久九九视频| 激情欧美一区二区三区| 91久久综合| 欧美理论在线播放| 中日韩美女免费视频网址在线观看 | 夜夜嗨av一区二区三区网页| 欧美日韩国产欧| 中文久久精品| 欧美一区二区三区免费观看| 国产午夜精品全部视频播放| 久久精品国产99| 欧美大成色www永久网站婷| 亚洲全部视频| 亚洲男人第一av网站| 国产亚洲免费的视频看| 亚洲人人精品| 欧美午夜三级| 欧美伊人久久久久久久久影院| 蜜臀久久99精品久久久久久9 | 一本久道久久综合婷婷鲸鱼| 国产精品电影在线观看| 午夜精品久久久久影视| 美国成人直播| 99精品福利视频| 久久狠狠久久综合桃花| 亚洲电影有码| 亚洲男同1069视频| 激情综合色丁香一区二区| 一本久道久久综合婷婷鲸鱼| 国产精品系列在线播放| 久久精品视频va| 欧美色图一区二区三区| 欧美影院午夜播放| 欧美精品在线网站| 亚洲欧美日韩在线| 欧美大胆a视频| 亚洲欧美999| 欧美电影免费观看大全| 亚洲影视在线播放| 欧美成人高清视频| 亚洲一区二区三区在线| 久久综合免费视频影院| 亚洲视频免费| 麻豆久久婷婷| 亚洲在线视频免费观看| 欧美成人按摩| 欧美一进一出视频| 欧美日韩国产综合一区二区| 欧美影院成年免费版| 欧美婷婷久久| 亚洲激情视频在线观看| 国产毛片精品国产一区二区三区| 亚洲日本成人| 国产日韩欧美精品在线| 日韩一区二区高清| 黄色成人在线免费| 亚洲已满18点击进入久久| 在线国产精品一区| 久久国产精品网站| 亚洲最新色图| 美女视频黄免费的久久| 亚洲欧美日韩国产一区二区三区 | 亚洲全黄一级网站| 国产三级精品三级| 亚洲一区视频在线| 亚洲日韩视频|