كنت الحصول على الكثير من البريد المزعج في صندوق بريدي اليومية التي كانت تنفق المزيد من الوقت ثم حذفها كنت مضيفا المحتوى الجديد ، والحفاظ على المواقع ، أو بدء مواقع جديدة مجتمعة) قصة النموذجي الحق). بعض من موقع الويب الخاص بك من البريد المزعج لا يمكن الوقاية منها ، أو أنه يمكن الوقاية منها ، ولكن على حساب من قابليتها للاستخدام و / أو الحصول على معلومات جيدة وقعوا في "أشياء سيئة" كذلك.
مما لا شك فيه ، إذا كنت جادا في التنمية على الشبكة العالمية وأنت تسير إلى خلق والتفاعل مع الأشكال على أساس منتظم. خاصة مع هذه الشبكة الجديدة 2.0 موقف كل... جي الحذق ، ما هذا؟
كلمة التحقق
كلمة التحقق هو رقم واحد طريقة معظم الناس تستخدم لمنع البريد المزعج اليوم. ما هو؟
"ألف كلمة التحقق يمثل تحديا وردا على أجهزة الكمبيوتر المستخدمة اختبار لمعرفة ما إذا كان المستخدم هي البشرية. وهناك نوع من كلمة التحقق المشتركة التي تستخدم على مواقع تتطلب أن الزائر اكتب الأحرف والأرقام من صورة مشوهة. وهذه الطريقة تقوم على حقيقة أن من الصعب على أجهزة الكمبيوتر لاستخراج النص من الصورة في حين أنه من السهل جدا بالنسبة للبشر. "-- captchacreator.com
Here'sa قليلة الموارد لنصوص ذلك ستتمكن من تنفيذ ذلك وظائف خاصة بك إلى أشكال :
الهروب البيانات -- منع مزود الحقن
Capcha هو usless إذا كنت ترك النموذج الخاص بك دون حماية من الهجوم. لنتذكر فلتر بعد الجمل مع addslashes () أو mysql_real_escape_string ().
أيضا إلقاء نظرة على هذه المهام لأخرى مماثلة نوع من الضوابط التي قد تكون مفيدة :
- htmlspecialchars () -- الهروب الأحرف التالية : &،'،"،>،<... هذه هي الو ، اقتبس واحدة ، مزدوجة أقتبس ، أقل من ، وأكبر من الرموز.
- strip_tags () -- الأشرطة جميع هتمل وPHP رمز من سلسلة نظرا ل.
- htmlentities () -- تحويل جميع الحروف لهتمل الكيانات يعادل (هذا هو أكثر المصيد كل نسخة من htmlspecialchars).
- urlencode () -- يشفر عنوان الموقع لتمرير قيود على الحصول على الطريقة. وكما ذكرت ، لا مع استخدام حصول على أشكال. وهذا مفيد عندما كنت مرور المستخدم مدخلات المتغيرات لأسباب أخرى.
تذكر ، مرة واحدة لكم تحويل مثل هذه البيانات باستخدام واحدة من المهام المذكورة أعلاه ، يمكنك التراجع عن ذلك لسهولة القراءة والانتاج بواسطة عكس وظيفة. urlencode () على سبيل المثال قد urldecode () إلى التراجع عن إجراءاتها حتى يمكنك أن تبدأ باستخدام سلسلة حسب قمتم قبل رموز.
طريقة فحص الطلب
وهو إلقاء بيان حول إذا القائمة الخاصة بك على شكل شيكات أن المعالج لمعرفة ما اذا كانت البيانات هي قادمة من غلوبالس بعد متغير. واذا لم يحدث ذلك المستخدم ليس الوصول إلى النموذج الخاص بك الطريق لكم أنها مصممة لاستخدامها.
-
<?php -
if ( $_SERVER [ ‘REQUEST_METHOD’ ] == ‘POST’ ) { -
//typical form processes -
} else { -
echo "The form can not be used like that" ; -
} -
?> - تحميل هذا الرمز : 0305spamrequestmethod.txt
الى ذلك للحصول على تغيير إذا كنت تستخدم بدلا من ذلك. ومع ذلك ، أود أن يوصي ارتفاع أبدا لكم أن تستخدم هذه الطريقة لأنها غير آمنة أكثر.
طلب التحقق من مصدر
ويجب أيضا فحص لمعرفة ما اذا كان الطلب هو منشؤها من الخادم الخاص بك. هذا هو طريقة شائعة جدا من شكل من أشكال الاعتداء الذي لا يعني بالضرورة سوف يكون استقبال البريد المزعج. إذا كنت الخادم هو الحصول على الكثير من رسائل البريد الإلكتروني للصعود إلى البريد الإلكتروني الافتراضي قد تكون لديكم شخص باساءة معاملة موقعك بهذه الطريقة.
-
<?php -
$source = $_SERVER [ ‘HTTP_HOST’ ] ; -
//or if you want to detect just the domain you can use a regular expression to filter it. -
$source = ereg_replace ( "^(www.)?([^.] ).[^.] $" , " \\ 2" , $_SERVER [ ‘HTTP_HOST’ ] ) ; -
if ( $source !== "robmalon.com" ) { -
echo "you are illegally accessing this script" ; -
} else { -
//typical form processes -
} -
//The referrer should also be from your own domain…Likewise, if there is no referral then the user obviously isnt using your form correctly (so we dont have to check for that). -
//Note: stristr() searches for the first occurrence of a string inside another string. -
if ( stristr ( getenv ( "HTTP_REFERER" ) , $source ) ) { -
//typical form processes -
} else { -
echo "you are illegally accessing this script" ; -
} -
?> - تحميل هذا الرمز : 0305spamhostsource.txt
باستخدام عبارات العادية لبيانات المصادقة
أحب لفحص البيانات باستخدام preg_match (أو أي من الوظائف العادية التعبير). وهذه الطريقة تقتل الكثير من عصافير بحجر واحد. لماذا الكتابة منفصلة المهام لمعرفة ما إذا كان هو سلسلة فارغة ، ثم آخر إذا سمحت للأعداد ، وآخر إذا سمحت ألفا حرفا ، وآخر لمدة محددة الميدان ، وآخر... حصولك على نقطة.
إذا (! preg_match ("/^[A - z0 - 9] (5،15 دولار}$/"، اسم)) خطأ دولار.= "<liclass=\"errors\"> حقل الاسم لا يمكن إلا أن تتضمن رسائل وأعداد (بدون مسافات) ولا يمكن إلا أن يكون ما يصل إلى 15 حرفا طويلة. </ لى> "؛
في preg_match أنا التحقق من أن اسم المجال فقط يحتوي على القيم الأبجدي (غير حساس لحالة الأحرف) ، ويحتاج إلى أن يكون على الأقل من 5 إلى 15 حرفا في الطول. إذا كنت لا تستوفي المواصفات المناسبة التي أضيفت إلى النص هو خطأ دولار.
باستخدام "[المتغير] [نقطة] [يساوي] [نص]" في هذا يتيح لي بطريقة مستمرة لإبقاء متغير أنا مضيفا أن ل. أنا يمكن بعد ذلك فحص لمعرفة ما اذا كان خطأ دولار يتضمن أي بيانات قبل البرنامج النصي بلدي هل هناك أي استفسارات كبيرة. وإذا كانت هناك أخطاء يمكنك يبصقون عليهم بترديد دولار الخطأ ويطلب من المستخدم لتصحيحها. وبعد ذلك استخدام أسلوب المغلق لبلدي الأخطاء التي ترون مع الطبقة = \ "أخطاء \".
العادية عبارات تحد لها على منحنى التعلم منها لكنها واحدة من أفضل الأدوات التي يمكن أن تساعد في تبسيط حياتك في مجموعة متنوعة من الحالات. سأذهب إلى مزيد من التفاصيل عن عليهم الطريق لكنه الآن قد ترغب في شراء كتاب أو فعل بعض Googling.
غير التقنية خلاصة
أ كلمة التحقق - تنفيذ البرنامج النصي.
الهروب بين شرائح (وأخرى سيئة حرفا).
- راجع لمعرفة ما اذا كانت البيانات القادمة إلى حسابك في شكل باستخدام طريقة الصحيح.
- راجع لمعرفة ما اذا كان الطلب هو منشؤها من الخادم الخاص بك.
- راجع البيانات باستخدام التعبير العادية.
هذا مجرد غيض من فيض ما استطيع ان اقول لكم عن البريد المزعج. ولهذا السبب أنا قررت تقديم مجموعة مصغرة من ذلك. على مدى الأسابيع القليلة القادمة سوف أكون أحمل إليكم أكثر تفصيلا أنا سبل التعامل مع البريد المزعج. دون تعليق أو البريد الإلكتروني الخاصة بك لي عن البريد المزعج أساليب وقائية. وإذا كان من جديد أو تقنية فريدة من نوعها وسوف بعد ذلك في المستقبل بلوق مع وصلة الى حسابك بلوق. فقط في كتابة التعليقات الواردة أدناه وتشمل عنوان موقعك في موقع الميدان.





































فقط لأنها حدثت لي... إذا كان إنشاء تلك البيانات مع الموت () البيان قد يكون من الأسهل لطريقة سريعة وقذرة. الذي أنا متأكد معظمكم على الأقل في الوقت الحالي يريد quickfix إرم فيها لمجرد إبقاء ذلك في الاعتبار... شيء مثل هذا :
إذا دولار (_SERVER [ 'REQUEST_METHOD']! == 'البريد') (يموت ( "شكل لا يمكن استخدام مثل هذا") ؛)
يمكنك أن تضع في أي مكان في بداية نصا لأنها لحيز التنفيذ دون الحاجة إلى القلق بشأن مدونة القائمة كثيرا.