国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

Sql語句密碼驗證的安全漏洞

2024-08-31 00:45:46
字體:
來源:轉載
供稿:網友

Sql語句作為國際標準的數據庫查詢語句,在各種編程環境中得到了廣泛的應用。作為一個成熟、穩定的系統,用戶登陸和密碼驗證是必不可少的。

Sql語句作為國際標準的數據庫查詢語句,在各種編程環境中得到了廣泛的應用。作為一個成熟、穩定的系統,用戶登陸和密碼驗證是必不可少的。筆者在平時的編程工作中發現,許多程序員在用sql語句進行用戶

  密碼驗證時是通過一個類似這樣的語句來實現的:

  Sql="Select * from 用戶表 where 姓名='" name "' and 密碼='" password "'"

  其中name和password是存放用戶輸入的用戶名和口令,通過執行上述語句來驗證用戶和密碼是否合法有效。但是通過分析可以發現,上述語句卻存在著致命的漏洞。當我們在用戶名稱中輸入下面的字符串時:111'or'1=1,然后口令隨便輸入,我們設為aaaa。變量代換后,sql語句就變成了下面的字符串:

  Sql="Select * from 用戶表 where 姓名='111'or'1=1' and 密碼='aaaa'

  我們都知道select語句在判斷查詢條件時,遇到或(or)操作就會忽略下面的與(and)操作,而在上面的語句中1=1的值永遠為true,這意味著無論在密碼中輸入什么值,均能通過上述的密碼驗證!這個問題的解決很簡單,方法也很多,最常用的是在執行驗證之前,對用戶輸入的用戶和密碼進行合法性判斷,不允許輸入單引號、等號等特殊字符。

  上述問題雖然看起來簡單,但確實是存在的。例如在互聯網上很有名氣的網絡游戲"笑傲江湖 "的早期版本就存在著這樣的問題,筆者也是在看了有關此游戲的漏洞報告后才仔細分析了自己以前編寫的一些程序,竟然有不少也存在著這樣的漏洞。這確實應該引起我們的注意。這也暴露出包括筆者在內的年輕程序員在編程經驗和安全意識上的不足。同時也提醒我們編程工作者在程序設計時應當充分考慮程序的安全性,不可有半點馬虎,一個看似很小的疏漏可能就會造成很嚴重的后果。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广平县| 措美县| 华容县| 临泽县| 望江县| 曲阳县| 秦皇岛市| 衡东县| 吉木乃县| 霸州市| 富蕴县| 罗甸县| 邮箱| 三台县| 营山县| 朝阳市| 江津市| 巴彦淖尔市| 平南县| 特克斯县| 吉木乃县| 泰兴市| 丹寨县| 固安县| 海兴县| 永春县| 通海县| 本溪| 新巴尔虎左旗| 嘉禾县| 冷水江市| 曲靖市| 恩平市| 随州市| 吴桥县| 兰溪市| 汝州市| 云霄县| 张家港市| 阿城市| 三门县|