国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

判斷Web數(shù)據(jù)庫方式的一個小經(jīng)驗(yàn)

時間:2008-09-18 03:52:00   來源:無憂考網(wǎng)     [字體: ]
很多站都是這樣防止或是過濾ASP提交的參數(shù)的
  if isnumeric(id) Then
  response.write "yes!"
  call sql_query(id)
  else
  response.write "Error id"
  Response.End
  end if
  這樣就不論怎么樣,如果出現(xiàn)非數(shù)值就出現(xiàn)錯誤,很直接的防范,沒辦法出錯,也沒辦法得到數(shù)據(jù)庫類型
  但是其實(shí)我們還是有方法的,
  比如這個ID是由xxx.asp提交的
  xxx.asp?id=1
  我們就在后面加上38個以上的數(shù)字,比如0
  xxx.asp?id=100000000...{"0"x38}
  這樣就能得讓上面那段ASP在執(zhí)行SQL_Query的時候出錯了
  提示如下
  引用內(nèi)容:
  Microsoft OLE DB Provider for SQL Server 錯誤 '80040e57'
  數(shù)字 '100000000000000000000000000000000000000000000000000000000000000000' 超出了數(shù)字表示范圍(精度為 38 位有效數(shù)字)。
  /announce.asp,行 19
  明白了沒?我們讓數(shù)據(jù)庫出錯了.可見Isnumeric的防范并不是徹底的.
  其實(shí)原因也很簡單:SQL中定義 Numeric數(shù)據(jù)的精度只能是38,如果我們提交了超過38個數(shù)值以后就會出現(xiàn)錯誤,從而讓數(shù)據(jù)庫出現(xiàn)錯誤...
  防范也很簡單,一句代碼足夠
  程序代碼:
  if id>1000000000 Then Call Error(id) '100000000這樣的長度總足夠了吧?

  更多請關(guān)注考試大計(jì)算機(jī)等級站