الأفكار الأساسية:
اكتب برنامجًا مستقلًا لكل وظيفة ، صفحة البرنامج
دع العملاء يعرفون أقل القليل من المعلومات على جانب الخادم الخاص بك
لا تستخدم فكرة "يجب على العملاء كتابة هذا" للتفكير في المشكلة
فكر في أكبر عدد ممكن من الأشياء التي لا يمكن أن تحدث
1. المشاكل المحتملة مع صفحات الويب الديناميكية التفاعلية
1.1 تفاعل نوع النموذج
1.1.1 مقدمة للمفاهيم
عندما نتفاعل مع الزوار ، فإن النموذج الأكثر استخدامًا (طريقة ما بعد/الحصول على/وضع). على الرغم من أنها مريحة للغاية ، إلا أن العديد من المشكلات تنشأ بسبب ذلك.
علامة الإدخال في النموذج
تستخدم لقبول المعلومات التي أدخلها المستخدمون ، مثل: اسم المستخدم ، كلمة المرور ، البريد الإلكتروني ، إلخ. إذا لم تتحقق
سوف تمنع بعض آلات السلامة
لتجاوز شهادة السلامة. على سبيل المثال ، سيؤدي إدخال عبارة HTML قياسية أو عبارة JavaScript إلى تغيير نتيجة الإخراج ، وإدخال عبارة HTML قياسية في مربع الإدخال
ما نوع النتائج التي سيتم الحصول عليها؟ على سبيل المثال ، في كتاب الرسائل ، ندخل محتوى رسالتنا: <fontsize = 10> مرحبًا! </font> إذا لم تكن هناك شاشة في برنامجك
حظر عبارات HTML ، ثم سيتم تغيير خط "Hello"
مقاس. إن تغيير حجم الخط والملصقات في كتاب الرسائل ليس شيئًا سيئًا في بعض الأحيان ، ولكنه يمكن أن يجعل كتاب الرسائل حيويًا. ولكن إذا كتبته في مربع الإدخال
حلقة جافا سكريبت الميتة ، مثل:
<HoHerf = "http: // someurl" onMouseover = "بينما (1) {window.close ('/')}"> أول ألف مثيرة </a> ثم تحقق من الرسالة للآخرين.
فقط حرك الضيوف
إذا قمت بنقل الماوس إلى "أول ألف مثيرة" ، فسوف يموت متصفح المستخدم بسبب الحلقة الميتة.
1.1.2 نقاط الوقاية الرئيسية
(1) تصفية الأحرف الخاصة
([/& ؛/`'/// |"*؟ ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g ؛) ، هذا هو الأكثر أساسية ، وقد تم ذكره أكثر من مرة واحدة في العديد من الأماكن.
<scriptLanguage = "vbscript">
subbubotton_onclick
erm1.uusername.value = "" ثم
msgbox "اسمك لا يمكن أن يكون فارغًا!" ، 0+32 ، "أوه! ليس ممكنًا بعد"
Form1.UUSERNAME.FOCUS
Exitsub
Endif
efform1.upassword.value = "" ثم
msgbox "لا يمكن أن تكون كلمة المرور الخاصة بك فارغة!" ، 0+32 ، "أوه! ليس ممكنًا بعد"
form1.upassword.focus
Exitsub
Endif
erm1.uusername.value = "" ثم
msgbox "اسمك لا يمكن أن يكون فارغًا!" ، 0+32 ، "أوه! ليس ممكنًا بعد"
Form1.UUSERNAME.FOCUS
Exitsub
Endif
Form1.Submit
ينتهي
</script>
functionisempty (objname)
{
varstr = document.inputform [objname] .value
vartmpstr = str.replace ([/& ؛/`'/// |"*؟ ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g ؛ ، "")
vartmptstr = tmpsstr.replace ([/& ؛/`'/// |"*؟ ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g ؛ ، "")
العودة (TMPSTR.Length == 0)
}
functionCheck ()
{
tf = document.inputform
الأخطاء = ""
إذا كان (isempty ("اسم المستخدم")) أخطاء+= "اسم المستخدم لا يمكن أن يكون فارغًا./n" ؛
إذا (isempty ("كلمة المرور")) أخطاء+= "لا يمكن أن تكون كلمة المرور فارغة!/n"
إذا (الأخطاء! = "")
تنبيه (أخطاء) ؛
العودة (الأخطاء == "")