解析防網站登陸被破解的簡單方法_.Net教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:asp.net程序中實現checkbox全選代碼程序開發中經常會要用到checkbox的全選,通常情況下是在一些數據綁定控件中如gridview等。下面以repeater為例,在repeater的header和item中放入checkbox控件 asp:RepeaterID=rptGrouprunat=server HeaderTemplate tablewidth=100%cellspacing=1class
在大多數的基于數據庫的身份認證登陸模塊,大多數的程序員只是用一個簡單的SQL查詢語句來實現,這樣很容易被用戶以簡單的( 1’ or ’1’=’1 )查詢替換給破解.其實只要稍微的修改一下代碼,便可以防止.具體請參看以下兩個函數的實現:以下代碼基于C#,數據庫為Access
1. 未防止 1’ or ’1’=’1 替換的情況:
private bool ValidateUser(string LoginId, string LoginPwd)
{
bool isCorrect = false;
try
{
DBAccept.conn.Open();
string sql = String.Format("select UserName from UserManagement where [UserName]=’{0}’ and [Password]=’{1}’", LoginId, LoginPwd);
OleDbCommand command = new OleDbCommand(sql, DBAccept.conn);
if (command.ExecuteReader().HasRows)
{
isCorrect = true;
}
else
{
isCorrect = false;
MessageBox.Show("此管理員用戶不存在或者密碼錯誤,請重試", "失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show("操作數據庫出錯", "失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
DBAccept.conn.Close();
}
return isCorrect;
}
2.修正版,可正常阻止 1’ or ’1’=’1 登陸
private bool ValidateUser(string LoginId, string LoginPwd)
{
bool isCorrect = false; //定一個bool變量
try
{
DBAccept.conn.Open();
string sql = String.Format("select Password from UserManagement where [UserName]=’{0}’", LoginId);
OleDbCommand command = new OleDbCommand(sql, DBAccept.conn);
if (command.ExecuteScalar().ToString() == LoginPwd)
{
isCorrect = true;
}
else
{
isCorrect = false;
MessageBox.Show("此管理員用戶不存在或者密碼錯誤,請重試", "失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show("操作數據庫出錯", "失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
DBAccept.conn.Close();
}
return isCorrect;
}
分享:解析五種ADO.NET數據庫連接知識ADO.NET提供了多種對象模型,比較典型的以下有五種,它們全部歸類在System.Data.SqlClient名稱空間下。 一、SqlConnection對象 ADO.NET使用SqlConnection對象與SQLServer進行連接。連接字符串的常用形式有兩種: 1.使用Windows集成安全身份認證,例如:strin
相關.Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程- 解析防網站登陸被破解的簡單方法。