程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP程序密碼驗證漏洞解決方案

ASP程序密碼驗證漏洞解決方案

編輯:關於ASP編程

             網站建設初期,很多網站把密碼放到數據庫中,在登陸驗證中用sql="select * from user where username='"&username&"'and pass='"& pass &'"查詢用戶名、密碼,這種是很不安全的。

      解決辦法:構造特殊用戶名和密碼

      方法一

      構造以下的用戶名:

      username='aa' or username<>'aa'

      pass='aa' or pass<>'aa'

      相應的在浏覽器端的用戶名框內寫入:aa' or username<>'aa,口令框內寫入:aa' or pass<>'aa,注意這兩個字符串兩頭是沒有'的。這樣就可以成功的騙過系統而進入。

      注:必須具備兩個條件:

      1. 首先要能夠准確的知道系統在表中是用哪兩個字段存儲用戶名和口令的,只有這樣你才能准確的構造出這個進攻性的字符串。

      2.系統對你輸入的字符串不進行有效性檢查。

      方法二

      只要根據sql構造一個特殊的用戶名和密碼,如:ben' or '1'='1,程序將會變成這樣: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&"。

      注:or是一個邏輯運算符,作用是在判斷兩個條件的時候,只要其中一個條件成立,那麼等式將會成立.而在語言中,是以1來代表真的.那麼在這行語句中,原語句的"and"驗證將不再繼續,而因為"1=1"和"or"令語句返回為真值。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved