حوّل الروابط الطويلة إلى روابط wfiori.co قصيرة قابلة للمشاركة.
اختصر رابطاً بالأعلى وشاهد بالضبط ما يحدث خلف الكواليس — من التحقق والحماية من الروبوتات وصولاً إلى التخزين وإعادة التوجيه الدائمة. كل قيمة بالأسفل مأخوذة من طلبك الفعلي.
يُرسَل الرابط الطويل إلى الخادم عبر واجهة shorten-link مع حل تحدي إثبات العمل.
{{ steps.input }}
يُقبل فقط http/https. تُرفض الروابط إلى المضيفين الداخليين أو الخاصين حتى لا تُستغل الأداة للوصول إلى الأنظمة الداخلية.
{{ steps.input ? steps.input.split('://')[0] : '' }}
{{ step_validation_status }}
متصفحك حلّ لغزاً مسبقاً: إيجاد رقم تبدأ تجزئته بـ SHA-256 بعدة أصفار. يتحقق الخادم من التحدي الموقّع ومن الحل قبل القيام بأي عمل.
{{ pow_debug.nonce }}
{{ pow_debug.difficulty }}
{{ pow_debug.solution }}
{{ pow_debug.hashPreview }}
يُسحب رمز من 6 أحرف من أبجدية مكوّنة من 62 حرفاً باستخدام مولّد أرقام عشوائية آمن تشفيرياً، مما يعطي فضاء مفاتيح هائلاً يتعذّر تخمينه.
{{ steps.alphabetSize }}
{{ steps.codeLength }}
{{ keyspace_text }}
{{ steps.code }}
يُحوَّل البروتوكول والمضيف إلى أحرف صغيرة، ثم تُجزّأ النتيجة بـ SHA-256. تُخزَّن هذه التجزئة في عمود فريد ليشير الوجهة نفسها دائماً إلى رمز واحد.
{{ steps.normalized }}
{{ steps.hash }}
يُدرَج الرمز والوجهة والتجزئة ووقت الإنشاء وعنوان IP للمنشئ (لتتبّع إساءة الاستخدام فقط) في جدول short_url. وإذا كانت التجزئة موجودة مسبقاً، يُعاد الرمز الموجود بدلاً من ذلك.
{{ dedup_text }}
عند زيارة https://wfiori.co/<code>، يبحث المحلّل عن الرمز عبر مفتاحه الأساسي — بحث بفهرس بتعقيد O(1).
{{ steps.code }}
{{ steps.shortUrl }}
يستجيب الخادم بإعادة توجيه دائمة HTTP 301 إلى الرابط الأصلي، ويُزاد عدّاد النقرات.
{{ redirect_text }}
كل رابط قصير هو صف واحد في جدول MySQL هذا. الرمز القصير هو المفتاح الأساسي، ويحمل url_hash فهرساً فريداً يدعم كلاً من إزالة التكرار والبحث السريع.
| العمود | النوع | الغرض |
|---|---|---|
id
|
VARCHAR(6) PK
|
الرمز القصير نفسه والمفتاح الأساسي. البحث بالرمز بتعقيد O(1). |
created_at
|
TIMESTAMP
|
وقت إنشاء الرابط. |
redirect_to
|
VARCHAR(2048)
|
الوجهة الأصلية (الرابط الطويل). |
url_hash
|
VARCHAR(64) UNIQUE
|
تجزئة SHA-256 للرابط المُوحَّد. فريد — يفرض إزالة التكرار على مستوى قاعدة البيانات. |
number_of_clicks
|
INT
|
عدد مرات زيارة الرابط القصير. |
ip_address
|
VARCHAR(45) NULL
|
عنوان IP للمنشئ، يُخزَّن لاكتشاف إساءة الاستخدام فقط. لا يُعرض للمستخدمين أبداً. |
لأن أداة الاختصار العامة هدف للرسائل المزعجة والتصيد، تعمل عدة دفاعات مُستضافة ذاتياً مع كل طلب — بدون خدمات خارجية وبدون كابتشا.