熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

利用instr()函數防止SQL注入攻擊[2]

2013-11-13 12:34:20  來源: SQL語言 
    string 為零長度 start

  string 為 Null Null

  string 沒有找到

  在 string 中找到 string 找到匹配字符串的位置

  start > Len(string)

  下面的示例利用 InStr 搜索字符串

  Dim SearchString SearchChar MyPos
  SearchString =XXpXXpXXPXXP 要在其中搜索的字符串
  SearchChar = P 搜索 P
  MyPos = Instr( SearchString SearchChar ) 文本比較從第四個字符開始返回
  MyPos = Instr( SearchString SearchChar ) 二進制比較從第個字符開始返回
  MyPos = Instr(SearchString SearchChar) 返回
   缺省為二進制比較(最後一個參數省略)
  MyPos = Instr( SearchString W) 二進制比較從第個字符開始返回 (沒有找到 W)

  注意 InStrB 函數使用包含在字符串中的字節數據所以 InStrB 返回的不是一個字符串在另一個字符串中第一次出現的字符位置而是字節位置

  總結概括instr的功能就是返回字符或字符串在另一個字符串中第一次出現的位置好了讓我們在看看哪個代碼

  if instr(Request(id) )> or instr(Request(id))> then

  含義比較 字符(空格)與字符()在request(id)中的具體位置(進行二進制制比較)假如找到了(空格)與()字符那麼就是then 後的語句!

  現在大家理解這個含義了吧!

  當我看第一眼的時候我就說假如在asp?Id=加上字符()等等一些字符時不是造樣出錯嗎?(是回答的肯定的)

  估計又有人說那我會在if instr(Request(id) )> or instr(Request(id))> then 語句中在加些字符比如改為if instr(Request(id) )> or instr(Request(id))> or instr(Request(id);)> or instr(Request(id) )> then 等等你還可以在後面加呵呵!(這個好啊!不過比較爛)是這樣加上後確實能桃過一些所謂的黑客們的手的!

  其實沒必要大家忘了instr(Request(id) )>這句話了嗎他還和(空格)比較了啊!只要有這句話那些所謂的黑客們的and = 不就沒用了嗎?

[]  []  


From:http://tw.wingwit.com/Article/program/SQL/201311/16161.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.