Sql語句密碼驗證的安全漏洞_Mssql數(shù)據(jù)庫教程
推薦:用sp_lock診斷SQL Sever的性能問題在IT 專家中有一種普遍的誤解,就是認為“鎖定是不好的東西”,你必須盡一切可能保證數(shù)據(jù)庫鎖定不會使得進程無法正常運行。為了能夠確保一個一致的數(shù)據(jù)庫環(huán)境,在對資源進行修改時,
Sql語句作為國際標準的數(shù)據(jù)庫查詢語句,在各種編程環(huán)境中得到了廣泛的應用。作為一個成熟、穩(wěn)定的系統(tǒng),用戶登陸和密碼驗證是必不可少的。
Sql語句作為國際標準的數(shù)據(jù)庫查詢語句,在各種編程環(huán)境中得到了廣泛的應用。作為一個成熟、穩(wěn)定的系統(tǒng),用戶登陸和密碼驗證是必不可少的。筆者在平時的編程工作中發(fā)現(xiàn),許多程序員在用sql語句進行用戶
密碼驗證時是通過一個類似這樣的語句來實現(xiàn)的:
Sql="Select * from 用戶表 where 姓名='" name "' and 密碼='" password "'"
其中name和password是存放用戶輸入的用戶名和口令,通過執(zhí)行上述語句來驗證用戶和密碼是否合法有效。但是通過分析可以發(fā)現(xiàn),上述語句卻存在著致命的漏洞。當我們在用戶名稱中輸入下面的字符串時:111'or'1=1,然后口令隨便輸入,我們設為aaaa。變量代換后,sql語句就變成了下面的字符串:
Sql="Select * from 用戶表 where 姓名='111'or'1=1' and 密碼='aaaa'
我們都知道select語句在判斷查詢條件時,遇到或(or)操作就會忽略下面的與(and)操作,而在上面的語句中1=1的值永遠為true,這意味著無論在密碼中輸入什么值,均能通過上述的密碼驗證!這個問題的解決很簡單,方法也很多,最常用的是在執(zhí)行驗證之前,對用戶輸入的用戶和密碼進行合法性判斷,不允許輸入單引號、等號等特殊字符。
上述問題雖然看起來簡單,但確實是存在的。例如在互聯(lián)網(wǎng)上很有名氣的網(wǎng)絡游戲"笑傲江湖 "的早期版本就存在著這樣的問題,筆者也是在看了有關(guān)此游戲的漏洞報告后才仔細分析了自己以前編寫的一些程序,竟然有不少也存在著這樣的漏洞。這確實應該引起我們的注意。這也暴露出包括筆者在內(nèi)的年輕程序員在編程經(jīng)驗和安全意識上的不足。同時也提醒我們編程工作者在程序設計時應當充分考慮程序的安全性,不可有半點馬虎,一個看似很小的疏漏可能就會造成很嚴重的后果。
分享:如何使用SQL Server 2008升級顧問微軟提供了SQL Server 2008升級顧問(SQL Server 2008 Upgrade Advisor,SSUA),可以在更新數(shù)據(jù)庫及相關(guān)程序前幫助用戶檢測并識別可能遇到的升級問題。該工具可以檢查SQL Server 2000和 SQL Serv
- sql 語句練習與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復數(shù)據(jù)的幾個方法
- sql刪除重復數(shù)據(jù)的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- 解讀常規(guī)數(shù)據(jù)庫維護涉及的5項工作
- 談SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- Excel導入數(shù)據(jù)庫時出現(xiàn)的文本截斷問題解決方案
- 淺析SQL的排序,分組,統(tǒng)計常用語句
- sqlserver數(shù)據(jù)庫出現(xiàn)置疑的解決思路
- SQL Server查詢語句的使用
- 一個獲取SQL Server數(shù)據(jù)字典的經(jīng)典SQL語句
- SQL Server儲過程加密和解密原理深入分析
- 從各種位置截取字符串的SQL語法
- 解析SQL Server數(shù)據(jù)庫觸發(fā)器安全隱患
猜你也喜歡看這些
- MySQL自增列插入0值的解決方案
- 解決MYSQL導入腳本數(shù)據(jù)中文亂碼
- MySQL SELECT同時UPDATE同一張表問題發(fā)生及解決
- Mysql兩種情況下更新字段中部分數(shù)據(jù)的方法
- Mysql select in 按id排序?qū)崿F(xiàn)方法
- 總結(jié)MySQL建表、查詢優(yōu)化的一些實用小技巧
- 解析mysql數(shù)據(jù)庫還原錯誤:(mysql Error Code: 1005 errno 121)
- MySQL查詢優(yōu)化:用子查詢代替非主鍵連接查詢實例介紹
- 網(wǎng)站數(shù)據(jù)多了分頁慢該怎么辦?
- 網(wǎng)站模板MySQL timestamp自動更新時間
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-Sql語句密碼驗證的安全漏洞
。