關於登入驗證安全問題,使用者名稱和密碼使用:1=1 or 1=1;
典型的sql:
sql="select * from
表where user= "&user&" and pass= "&pass&" "
為避免:
sql="select * from
表where user= 1 = 1 or 1=1 and pass= 1=1 or 1 = 1 "
解決方法:
一、函式替代法:
用replace 將使用者端輸入的內容中含有特殊字元進行替換,達到控制目的啊!sql="select * from 表where user= "&replace(user," "," ")&" and pass= "&replace(pass," "," ")&" "
這種方法每次只能替換乙個字元,其實危險的字元不只是" " ,還有如">" 、"<" 、"&" 、"%" 等字元應該全控制起來。但用replace 函式好象不太勝任那怎麼辦呢??
二、程式控制法
用程式來對客戶端輸入的內容全部控制起來,這樣能全面控制使用者端輸入的任何可能的危險字元或**,我就的這個方法!
<%
捕捉使用者端提交的表單內容
user=request.from("user")
pass=request.from("pass")
...
迴圈控制開始
for i=1 to len(user)
用mid 函式讀出變數user 中i 位置的乙個字元
us=mid(user,i,1)
將讀出的字元進行比較
if us=" " or us="%" or us="<" or us=">" or us="&" then
如果含有以上字元將出錯提示,不能含有以上特殊字元
response.redirect "err2.htm"
response.end
end if
next
...
%>
使用者登入時的安全問題剖析
post是提交資料的方式,比較常見的post提交資料的方式有四種 2 multipart form data 瀏覽器支援 向伺服器上傳小檔案,一般不超過2m 4 text xml 瀏覽器不支援 向後台伺服器提交結構化資料 本文主要介紹第一種提交資料的方式 如何用post進行使用者資料安全提交,保護使...
登入安全問題策略
使用者登入介面 img 客戶感覺每次都要輸入驗證碼不爽,那麼你會怎麼做?三次輸入錯誤,24小時內都要驗證碼 我知道的三種解決方法 cookie session 資料庫表記錄 三種儲存方式,資料庫最安全,還可以判斷下對方的ip,根據對方ip儲存,可是我們專案是門戶型 這個使用者量是很大的。cookie...
前端登入安全問題
對於前端開發來說安全問題很重要,我們不希望自己的密碼之類的資訊暴露出來被人獲取。如果前端不加以限制,很多重要資訊容易洩露。比如我們登入的時候,提交post,我們在瀏覽器控制台network的http請求中會直接看到密碼。http協議是明文傳輸,只要別人一抓包就可以獲取到傳輸的報文。那為了讓資料傳輸更...