غالبًا ما يتم استخراج رسائل البريد الإلكتروني المنشورة على صفحات الويب تلقائيًا بواسطة بعض الأدوات، وسيستخدم بعض المستخدمين غير القانونيين رسائل البريد الإلكتروني المستخرجة لإرسال رسائل غير مرغوب فيها. تقوم معظم هذه الأدوات بالبحث عن المعلومات بعد "mailto:" أو المعلومات قبل وبعد "@" في الرابط لتحقيق غرض استخراج رسائل البريد الإلكتروني. كنت أبحث في الكود المصدري لـ DotNetNuke (المشار إليه فيما يلي باسم DNN) ووجدت طريقة جيدة لمنع استخراج هذه المعلومات تلقائيًا.
توجد مثل هذه الوظيفة في DNN (في Globals.vb):
الوظيفة العامة CloakText() الوظيفة CloakText(ByVal PersonalInfo كسلسلة) كسلسلة
إذا لم تكن PersonalInfo ليست شيئًا إذن
Dim sb عندما يقوم New StringBuilder
بالتحويل إلى رموز أحرف ASCII، قم بتحويل السلسلة إلى نموذج سلسلة مشفرة ASCII
إزالة (0، طول sb)
طول السلسلة الخافت كعدد صحيح = PersonalInfo.Length - 1
بالنسبة إلى i As Integer = 0 إلى StringLength
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
إذا كنت <StringLength ثم
sb.إلحاق ("،")
نهاية إذا
التالي
' إنشاء كتلة البرنامج النصي
تعتيم sbScript باعتباره StringBuilder
sbScript.Append الجديد (vbCrLf & "<script language=""javascript"">" & vbCrLf)
sbScript.Append("<!-- " & vbCrLf)
'طريقة fromCharCode: تقوم بإرجاع سلسلة من بعض قيم أحرف Unicode.
sbScript.Append(" document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Append("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
إرجاع sbScript.ToString
آخر
إرجاع Null.NullString
End If
End
يقوم هذا الرمز أولاً بتحويل المعلومات المراد تشفيرها إلى نموذج سلسلة مشفرة بـ ASCII، ثم يكتبها على الصفحة باستخدام طريقة document.write في جافا سكريبت.
لقد اختبرت التأثير التالي ويعمل بشكل جيد. يمكنك أيضًا تجربتها.
<أتش تي أم أل>
<الرأس>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>اختبار تشفير المعلومات</title>
</الرأس>
<الجسم>
الروابط التي يمكن استخراجها: <a href=" mailto:[email protected]">[email protected]</a><br >
الروابط التي لا يمكن استخراجها:
<لغة البرمجة = "جافا سكريبت">
<!--
document.write(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,120,120,120,64,116,111,109,
46,99,111,109,34,62,120,120,120,64,116,111,109,46,99,111,109,60,47,97,62))
// -->
</script>
</الجسم>
</html>
إذا كنت مهتمًا، فيمكنك أيضًا استخدام طرق أكثر تعقيدًا للتشفير. باختصار: لم يعد بإمكان الأشخاص الحصول على المعلومات بسهولة!