مصيدة الربوتات هى تقنية بسيط الغرض منها صنع فخ للربوتات او Spam , المفهوم كبير ويمكن ان يستخدم فى كثير من تطبيقات الآمن السبرانى على اصعدة مختلفة مثل الشبكات وغيرها ولكن اهتمامنا اليوم بإستخدامه فى تطوير الويب فى نماذج التسجيل مثل تسجيل الأعضاء.
ماهى مصيدة الربوتات فى تطوير الويب
ببساطة هى عبارة عن حقل إضافى فى نموذج التسجيل هذا الحقل غير مرئى للمستخدمين حيث يتم إخفاءه عن طريق CSS وفى نفس الوقت فإن الروبوتات تقوم بملئ هذا الحقل بشكل أتوماتيكى (لان برامج Spam لن تميزه وستقوم بملءه كأي حقل أخر).
يقوم المطور بوضع شرط فعند ملء هذا الحقل فهذا يعنى بالضرورة ان ربوت قام بملءه فتقوم بعدم إتمام الطلب.
على الرغم من بساطة الفكرة إلا انها طريقة فعالة و تساعد كثير فى حماية النماذج مثل نماذج التعليقات فى الموقع او التسجيل او الإشراك فى القائمة البريدية وغيرها.
تنفيذ مصيدة الربوتات بإستخدام PHP
لنفترض ان لدينا نموذج بسيط لتسجيل الأعضاء كالتالى
<label for="email">Email:</label> <input type="email" id="email" name="email" required> <!-- Honeypot field --> <label for="username">Username:</label> <input type="text" id="username" name="username" style="display:none;"> ...
نقوم بوضع حقل مخفى بإي اسم وليكن Username , لاحظ ان هذا الحقل غير مرئى للمستخدم العادى حيث اننا قمن بإخفاءه عن طريق وسم style.
وعن طريق كود PHP نقوم بالتالى
$email = $_POST['email']; $username = $_POST['username']; // Check if honeypot field is filled out if (!empty($username)) { // فى حالة ملء هذا الحقل فهذا يعنى انه تم عن طريق بوت // فى هذه الحالة لا تكمل العملية exit; } // اكمل معالجة الطلب // ...
نقوم بوضع شرط لمعرفة ما إذا كان تم ملء هذا الحقل, ففى حالة ملءه نقوم بالخروج من السكربت, لاحظ انه اذا كان هذه دالة يمكننا إستخدام العبارة return.