Dua hari yang lalu, saya sedang mengerjakan versi di dalam mesin dari mesin pencari perusahaan dan menemukan bahwa beberapa situs dapat menautkan ke konten situs. .
Saya melihatnya dengan aneh dan ternyata itu ditautkan sesuai dengan aturan penomoran otomatis ID database ~~
Saya telah melakukan hal -hal berikut di waktu luang saya, berharap ini akan membantu semua orang di masa depan menulis program ASP!
<%
'' // menghasilkan jumlah acak dari digit yang ditentukan
'' // Anda juga dapat menggunakan fungsi ixuer_rnd_str yang ditulis dalam Guidy, yang dilengkapi dengan 15 gaya, dan Anda dapat pseudo md5 !!
FunctionRndStr (strlong)
Dimtempstr
Mengacak
Dowhilelen (RNDSTR) <Strlong
Tempstr = CSTR (CHR ((57-48)*RND+48))
RNDSTR = RNDSTR & TEMPSTR
Lingkaran
RNDSTR = RNDSTR
Fungsi endfungsi
%>
Berikut ini adalah parameter yang dikirimkan dalam formulir sebagai contoh untuk permintaan.Form. Nilai asli dari parameter DOACTION yang perlu dilewati adalah ID yang dibaca dari database.
<formname = iforMaction = "abc.asp" metode = "post">
<inputName = doActionType = "hidden" value = "<%= rndStr (10)%> <%= rs (" id ")%> <%= rndstr (10)%>">
</form>
Melihat:
Nilai tindakan di atas telah berubah, dan nilai yang diperoleh setiap kali halaman disegarkan berbeda ~~
Di bawah ini adalah halaman ABC.asp
Pertama dapatkan nilai doaction
doaction = trim (request.form ("doaction"))
Di bawah ini Anda dapat menambahkan beberapa verifikasi sendiri, seperti isnumeric, dll.
Lalu mari kita hancurkan nilai doaction
Dimlastid
doaction = mid (doaction, 11)
Lastid = mid (doaction, 1, len (doaction) -10)
Jika Anda terbiasa dengan fungsi tengah, konten di atas mudah ditebak, bukankah itu sederhana?
Berikut adalah contoh sebenarnya:
Nilai ID yang akan diteruskan oleh doaction asli dalam database (tipe bidang secara otomatis diberi nomor) adalah: 34
menjelaskan:
11 di tengah (doaction, 11) menghasilkan sejumlah karakter acak + 1
10 dalam lastId = mid (doaction, 1, len (doaction) -10) adalah jumlah digit karakter acak yang dihasilkan oleh angka yang ditentukan!
Dimlastid
doaction = 3614354944348151287527 - Nilai ID setelah disamarkan (dapat diverifikasi sebagai angka)
doaction = mid (doaction, 11)
Lastid = mid (doaction, 1, len (doaction) -10)
Lastid = 34
Saya bereksperimen dan jika digunakan dengan huruf dan angka yang dihasilkan secara acak, itu dapat sepenuhnya dipalsukan sebagai nilai yang mirip dengan MD5!
Hanya ada satu kondisi, dan Anda harus menentukan jumlah bit karakter acak!
Haha, sekarang semua orang dapat mengeluarkan nilai lastId dari respons. Menulis untuk melihat apakah itu adalah ID dalam database lagi?