قبل يومين ، كنت أعمل على إصدار في الموقع من Enterprise Search Enterprise ووجدت أن بعض المواقع يمكنها الارتباط بمحتوى الموقع. .
نظرت إليه بشكل غريب واتضح أنه تم ربطه وفقًا لقواعد الترقيم التلقائية لمعرف قاعدة البيانات ~~
لقد فعلت ما يلي في وقت فراغي ، على أمل أن يكون مفيدًا للجميع في المستقبل في كتابة برامج ASP!
<٪
"// إنشاء عدد عشوائي من الأرقام المحددة
"// يمكنك أيضًا استخدام وظيفة ixuer_rnd_str مكتوبة في Guidy ، والتي تأتي مع 15 أنماط ، ويمكنك pseudo md5 !!
FunctionRndstr (Strlong)
DimTempstr
عشوائي
Dowhilelen (RNDSTR) <Strlong
tempstr = CSTR (CHR ((57-48)*RND+48))
RNDSTR = RNDSTR & TEMPSTR
حلقة
RNDSTR = RNDSTR
الوظيفية
٪>
فيما يلي معلمة يتم إرسالها في النموذج كمثال على request.form. القيمة الأصلية للمعلمة DoAction التي تحتاج إلى تمريرها هي المعرف القراءة من قاعدة البيانات.
<formName = iformAction = "abc.asp" method = "post">
<inputName = doActionType = "Hidden" value = "<٪ = RNDSTR (10) ٪> <٪ = RS (" ID ") ٪> <٪ = RNDSTR (10) ٪>">
</form>
يلاحظ:
تغيرت قيمة doaction أعلاه ، والقيمة التي تم الحصول عليها في كل مرة يتم تحديث الصفحة مختلفة ~~
فيما يلي صفحة ABC.ASP
احصل أولاً على قيمة doaction
doAction = trim (request.form ("doaction"))
يمكنك أدناه إضافة بعض التحقيقات بنفسك ، مثل isnumber ، إلخ.
ثم دعونا نقوم بتفكيك قيمة doaction
Dimlastid
DoAction = mid (doaction ، 11)
LastId = mid (doaction ، 1 ، len (doaction) -10)
إذا كنت على دراية بالوظائف المتوسطة ، فإن المحتوى أعلاه سهل التخمين ، أليس كذلك؟
فيما يلي الأمثلة الفعلية:
قيمة المعرف المراد تمرير
يوضح:
11 في منتصف (DoAction ، 11) يولد عددًا من الأحرف العشوائية + 1
10 في LastId = mid (doaction ، 1 ، len (doaction) -10) هو عدد أرقام الأحرف العشوائية التي تم إنشاؤها بالرقم المحدد!
Dimlastid
DoAction = 3614354944348151287527 - قيمة الهوية بعد تمويه (يمكن التحقق منها كرقم)
DoAction = mid (doaction ، 11)
LastId = mid (doaction ، 1 ، len (doaction) -10)
LastId = 34
لقد جربت وإذا تم استخدامها بأحرف وأرقام تم إنشاؤها عشوائيًا ، فقد تكون مزيفة تمامًا كقيمة تشبه MD5!
هناك حالة واحدة فقط ، ويجب عليك تحديد عدد أجزاء الأحرف العشوائية!
هاها ، الآن يمكن للجميع إخراج القيمة الأخيرة للاستجابة. الكتابة لمعرفة ما إذا كان المعرّف في قاعدة البيانات مرة أخرى؟