الحصول على نسخة خادم الويب.

يوفر محرك بحث جوجل (www.google.com) العديد من خيارات البحث. كل هذه الميزات هي أداة بحث لا تقدر بثمن لمستخدم جديد على الإنترنت وفي الوقت نفسه سلاح أكثر قوة للغزو والتدمير في أيدي الأشخاص ذوي النوايا الشريرة، بما في ذلك ليس فقط المتسللين، ولكن أيضًا مجرمي الكمبيوتر وغير الكمبيوتر. حتى الإرهابيين.
(9475 مشاهدة في أسبوع واحد)

دينيس بارانكوف
denisNOSPAMixi.ru

انتباه:هذه المقالة ليست دليلا للعمل. تمت كتابة هذه المقالة من أجلكم، أيها المسؤولون عن خوادم الويب، حتى تفقدوا الشعور الزائف بأنكم آمنون، وستفهمون أخيرًا خبث هذه الطريقة في الحصول على المعلومات وتتولى مهمة حماية موقعك.

مقدمة

على سبيل المثال، وجدت 1670 صفحة في 0.14 ثانية!

2. دعنا ندخل سطراً آخر، على سبيل المثال:

inurl:"auth_user_file.txt"

أقل قليلاً، ولكن هذا يكفي للتنزيل المجاني وتخمين كلمة المرور (باستخدام نفس John The Ripper). أدناه سأقدم عددًا من الأمثلة الإضافية.

لذا، عليك أن تدرك أن محرك بحث Google قد قام بزيارة معظم مواقع الإنترنت وقام بتخزين المعلومات الموجودة عليها مؤقتًا. تتيح لك هذه المعلومات المخزنة مؤقتًا الحصول على معلومات حول الموقع ومحتوى الموقع دون الاتصال المباشر بالموقع، وذلك فقط من خلال الخوض في المعلومات المخزنة داخل جوجل. علاوة على ذلك، إذا لم تعد المعلومات الموجودة على الموقع متاحة، فقد تظل المعلومات الموجودة في ذاكرة التخزين المؤقت محفوظة. كل ما تحتاجه لهذه الطريقة هو معرفة بعض الكلمات الرئيسية لجوجل. هذه التقنية تسمى Google Hacking.

ظهرت المعلومات حول Google Hacking لأول مرة في القائمة البريدية لـ Bugtruck منذ 3 سنوات. في عام 2001، أثار هذا الموضوع طالب فرنسي. إليك رابط لهذه الرسالة http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html. ويقدم الأمثلة الأولى لمثل هذه الاستعلامات:

1) فهرس /admin
2) فهرس /كلمة المرور
3) فهرس / البريد
4) فهرس / +banques +filetype:xls (لفرنسا...)
5) مؤشر / +passwd
6) فهرس /password.txt

أحدث هذا الموضوع ضجة في قسم القراءة باللغة الإنجليزية على الإنترنت مؤخرًا: بعد مقال جوني لونج، الذي نُشر في 7 مايو 2004. للحصول على دراسة أكثر اكتمالاً عن Google Hacking، أنصحك بالذهاب إلى موقع هذا المؤلف http://johnny.ihackstuff.com. في هذه المقالة أريد فقط أن أقدم لكم آخر المستجدات.

من يمكنه استخدام هذا:
- يمكن للصحفيين والجواسيس وجميع الأشخاص الذين يحبون دس أنوفهم في شؤون الآخرين استخدام هذا للبحث عن أدلة تدينهم.
- يبحث الهاكرز عن أهداف مناسبة للقرصنة.

كيف يعمل جوجل.

لمواصلة المحادثة، اسمحوا لي أن أذكركم ببعض الكلمات الرئيسية المستخدمة في استعلامات Google.

البحث باستخدام علامة +

يستبعد Google الكلمات التي يعتبرها غير مهمة من عمليات البحث. على سبيل المثال، كلمات الاستفهام وحروف الجر والمقالات باللغة الإنجليزية: على سبيل المثال، من، أين. في اللغة الروسية، يبدو أن جوجل تعتبر كل الكلمات مهمة. إذا تم استبعاد كلمة من البحث، يكتب جوجل عنها. لكي يبدأ جوجل في البحث عن الصفحات التي تحتوي على هذه الكلمات، عليك إضافة علامة + بدون مسافة قبل الكلمة. على سبيل المثال:

الآس + القاعدة

البحث باستخدام الإشارة –

إذا عثر Google على عدد كبير من الصفحات التي يحتاج إلى استبعاد الصفحات التي تحتوي على موضوع معين، فيمكنك إجبار Google على البحث فقط عن الصفحات التي لا تحتوي على كلمات معينة. للقيام بذلك، تحتاج إلى الإشارة إلى هذه الكلمات عن طريق وضع علامة أمام كل منها - دون مسافة قبل الكلمة. على سبيل المثال:

صيد السمك - الفودكا

البحث باستخدام ~

قد ترغب في البحث ليس فقط عن الكلمة المحددة، ولكن أيضًا عن مرادفاتها. للقيام بذلك، قم بوضع الرمز ~ قبل الكلمة.

العثور على عبارة محددة باستخدام علامات الاقتباس المزدوجة

يبحث Google في كل صفحة عن جميع تكرارات الكلمات التي كتبتها في سلسلة الاستعلام، ولا يهتم بالموضع النسبي للكلمات، طالما أن جميع الكلمات المحددة موجودة في الصفحة في نفس الوقت (هذا الإجراء الافتراضي). للعثور على العبارة الدقيقة، تحتاج إلى وضعها بين علامتي اقتباس. على سبيل المثال:

"الغلاف"

للحصول على واحدة على الأقل من الكلمات المحددة، يجب عليك تحديد العملية المنطقية بشكل صريح: OR. على سبيل المثال:

سلامة الكتاب أو الحماية

بالإضافة إلى ذلك، يمكنك استخدام علامة * في شريط البحث للإشارة إلى أي كلمة و. لتمثيل أي شخصية.

البحث عن الكلمات باستخدام عوامل تشغيل إضافية

توجد عوامل تشغيل بحث محددة في سلسلة البحث بالتنسيق:

عامل التشغيل:search_term

ليست هناك حاجة للمسافات بجانب القولون. إذا قمت بإدراج مسافة بعد النقطتين، فستظهر لك رسالة خطأ، وقبلها، سيستخدمها Google كسلسلة بحث عادية.
هناك مجموعات من عوامل تشغيل البحث الإضافية: اللغات - حدد اللغة التي تريد رؤية النتيجة بها، والتاريخ - حدد النتائج خلال الأشهر الثلاثة أو الستة أو الاثني عشر الماضية، والأحداث - حدد المكان الذي تريد البحث عنه في المستند السطر: في كل مكان، في العنوان، في عنوان URL، المجالات - البحث في الموقع المحدد أو، على العكس من ذلك، استبعاده من البحث الآمن - حظر المواقع التي تحتوي على النوع المحدد من المعلومات وإزالتها من صفحات نتائج البحث.
ومع ذلك، فإن بعض عوامل التشغيل لا تتطلب معلمة إضافية، على سبيل المثال الطلب " ذاكرة التخزين المؤقت: www.google.com" يمكن استدعاؤها كسلسلة بحث كاملة، وبعض الكلمات الرئيسية، على العكس من ذلك، تتطلب كلمة بحث، على سبيل المثال " الموقع: www.google.com مساعدة". في ضوء موضوعنا، دعونا نلقي نظرة على العوامل التالية:

المشغل أو العامل

وصف

يتطلب معلمة إضافية؟

البحث فقط على الموقع المحدد في search_term

ابحث فقط في المستندات ذات النوع search_term

ابحث عن الصفحات التي تحتوي على search_term في العنوان

ابحث عن الصفحات التي تحتوي على جميع كلمات search_term في العنوان

ابحث عن الصفحات التي تحتوي على كلمة search_term في عناوينها

ابحث عن الصفحات التي تحتوي على جميع كلمات search_term في عناوينها

المشغل أو العامل موقع:يقتصر البحث على الموقع المحدد فقط، ولا يمكنك تحديد اسم المجال فحسب، بل يمكنك أيضًا تحديد عنوان IP. على سبيل المثال، أدخل:

المشغل أو العامل نوع الملف:يحد البحث من نوع ملف معين. على سبيل المثال:

اعتبارًا من تاريخ نشر المقالة، يمكن لمحرك البحث Google البحث ضمن 13 تنسيقًا مختلفًا للملفات:

  • تنسيق مستند Adobe المحمول (pdf)
  • أدوبي بوستسكريبت (ملاحظة)
  • لوتس 1-2-3 (wk1، wk2، wk3، wk4، wk5، wki، wks، wku)
  • لوتس وورد برو (lwp)
  • ماك رايت (ميغاواط)
  • مايكروسوفت إكسل (xls)
  • مايكروسوفت باور بوينت (جزء لكل تريليون)
  • مايكروسوفت وورد (وثيقة)
  • مايكروسوفت ووركس (WKS، WPS، WDB)
  • مايكروسوفت الكتابة (WRI)
  • تنسيق النص المنسق (rtf)
  • فلاش موجة الصدمة (swf)
  • النص (الإجابة، النص)

المشغل أو العامل وصلة:يعرض كافة الصفحات التي تشير إلى الصفحة المحددة.
ربما يكون من المثير للاهتمام دائمًا معرفة عدد الأماكن التي تعرفها عنك على الإنترنت. دعونا نحاول:

المشغل أو العامل مخبأ:يعرض إصدار الموقع الموجود في ذاكرة التخزين المؤقت لـ Google كما ظهر في آخر مرة زار فيها Google تلك الصفحة. لنأخذ أي موقع يتغير بشكل متكرر وننظر:

المشغل أو العامل العنوان:يبحث عن الكلمة المحددة في عنوان الصفحة. المشغل أو العامل العنوان:هو امتداد - يبحث عن جميع الكلمات القليلة المحددة في عنوان الصفحة. يقارن:

العنوان: رحلة إلى المريخ
intitle:flight intitle:on intitle:mars
allintitle:رحلة إلى المريخ

المشغل أو العامل عنوان URL:يفرض على Google إظهار جميع الصفحات التي تحتوي على السلسلة المحددة في عنوان URL. عامل allinurl: يبحث عن جميع الكلمات في عنوان URL. على سبيل المثال:

allinurl:acid acid_stat_alerts.php

يعد هذا الأمر مفيدًا بشكل خاص لأولئك الذين ليس لديهم SNORT - على الأقل يمكنهم رؤية كيفية عمله على نظام حقيقي.

طرق الاختراق باستخدام جوجل

لذلك، اكتشفنا أنه باستخدام مجموعة من العوامل والكلمات الرئيسية المذكورة أعلاه، يمكن لأي شخص جمع المعلومات الضرورية والبحث عن نقاط الضعف. غالبًا ما تسمى هذه التقنيات بـ Google Hacking.

خريطة الموقع

يمكنك استخدام عامل الموقع: لسرد جميع الروابط التي عثر عليها Google على أحد المواقع. عادةً، لا تتم فهرسة الصفحات التي يتم إنشاؤها ديناميكيًا بواسطة البرامج النصية باستخدام المعلمات، لذلك تستخدم بعض المواقع مرشحات ISAPI بحيث لا تكون الروابط في النموذج /article.asp?num=10&dst=5، ومع خطوط مائلة /article/abc/num/10/dst/5. يتم ذلك بحيث تتم فهرسة الموقع بشكل عام بواسطة محركات البحث.

دعونا نحاول:

الموقع: www.whitehouse.gov البيت الأبيض

تعتقد Google أن كل صفحة على موقع ويب تحتوي على كلمة البيت الأبيض. وهذا ما نستخدمه للحصول على كافة الصفحات.
هناك أيضًا نسخة مبسطة:

الموقع: www.whitehouse.gov

وأفضل ما في الأمر هو أن الرفاق من موقع Whitehouse.gov لم يعرفوا حتى أننا نظرنا إلى بنية موقعهم وحتى نظرنا إلى الصفحات المخزنة مؤقتًا التي قام Google بتنزيلها. ويمكن استخدام هذا لدراسة بنية المواقع وعرض المحتوى، دون أن يتم اكتشافها في الوقت الحالي.

عرض قائمة الملفات في الدلائل

يمكن لخوادم الويب عرض قوائم أدلة الخادم بدلاً من صفحات HTML العادية. يتم ذلك عادةً للتأكد من قيام المستخدمين بتحديد وتنزيل ملفات محددة. ومع ذلك، في كثير من الحالات، ليس لدى المسؤولين أي نية لإظهار محتويات الدليل. يحدث هذا بسبب تكوين الخادم غير الصحيح أو عدم وجود الصفحة الرئيسية في الدليل. ونتيجة لذلك، فإن المتسلل لديه فرصة للعثور على شيء مثير للاهتمام في الدليل واستخدامه لأغراضه الخاصة. للعثور على كل هذه الصفحات، يكفي ملاحظة أنها تحتوي جميعها على الكلمات: فهرس. ولكن بما أن فهرس الكلمات لا يحتوي على مثل هذه الصفحات فقط، فنحن بحاجة إلى تحسين الاستعلام ومراعاة الكلمات الرئيسية الموجودة في الصفحة نفسها، بحيث تكون الاستعلامات مثل:

intitle:index.of الدليل الأصلي
intitle:index.of حجم الاسم

نظرًا لأن معظم قوائم الدليل مقصودة، فقد تجد صعوبة في العثور على قوائم في غير محلها في المرة الأولى. ولكن على الأقل يمكنك بالفعل استخدام القوائم لتحديد إصدار خادم الويب، كما هو موضح أدناه.

الحصول على نسخة خادم الويب.

إن معرفة إصدار خادم الويب مفيد دائمًا قبل شن أي هجوم قرصنة. مرة أخرى، بفضل Google، يمكنك الحصول على هذه المعلومات دون الاتصال بالخادم. إذا نظرت عن كثب إلى قائمة الدليل، يمكنك أن ترى أن اسم خادم الويب وإصداره معروضان هناك.

Apache1.3.29 - خادم ProXad على منفذ trf296.free.fr 80

يمكن للمسؤول ذي الخبرة تغيير هذه المعلومات، ولكن كقاعدة عامة، هذا صحيح. وبالتالي، للحصول على هذه المعلومات يكفي إرسال طلب:

العنوان:index.of server.at

للحصول على معلومات لخادم معين نوضح الطلب:

intitle:index.of server.at الموقع: ibm.com

أو العكس، نبحث عن خوادم تعمل بإصدار معين من الخادم:

intitle:index.of Apache/2.0.40 الخادم في

يمكن للمتسلل استخدام هذه التقنية للعثور على الضحية. على سبيل المثال، إذا كان لديه استغلال لإصدار معين من خادم الويب، فيمكنه العثور عليه وتجربة استغلال موجود.

يمكنك أيضًا الحصول على إصدار الخادم من خلال عرض الصفحات المثبتة افتراضيًا عند تثبيت أحدث إصدار من خادم الويب. على سبيل المثال، لرؤية صفحة اختبار Apache 1.2.6، ما عليك سوى الكتابة

intitle:Test.Page.for.Apache it.worked!

علاوة على ذلك، تقوم بعض أنظمة التشغيل بتثبيت خادم الويب وتشغيله على الفور أثناء التثبيت. ومع ذلك، فإن بعض المستخدمين لا يدركون ذلك. وبطبيعة الحال، إذا رأيت أن شخصًا ما لم يقم بإزالة الصفحة الافتراضية، فمن المنطقي افتراض أن الكمبيوتر لم يخضع لأي تخصيص على الإطلاق ومن المحتمل أن يكون عرضة للهجوم.

حاول البحث عن صفحات IIS 5.0

allintitle:مرحبًا بك في خدمات إنترنت Windows 2000

في حالة IIS، لا يمكنك تحديد إصدار الخادم فحسب، بل يمكنك أيضًا تحديد إصدار Windows وحزمة الخدمة.

هناك طريقة أخرى لتحديد إصدار خادم الويب وهي البحث عن الأدلة (صفحات المساعدة) والأمثلة التي قد تكون مثبتة على الموقع افتراضيًا. لقد وجد المتسللون عددًا لا بأس به من الطرق لاستخدام هذه المكونات للحصول على حق الوصول المميز إلى الموقع. ولهذا السبب تحتاج إلى إزالة هذه المكونات في موقع الإنتاج. ناهيك عن حقيقة أن وجود هذه المكونات يمكن أن يوفر معلومات حول نوع الخادم وإصداره. على سبيل المثال، فلنبحث عن دليل Apache:

inurl: وحدات توجيهات Apache اليدوية

استخدام جوجل كماسح ضوئي CGI.

يعد الماسح الضوئي CGI أو الماسح الضوئي WEB أداة مساعدة للبحث عن البرامج النصية والبرامج الضعيفة على خادم الضحية. يجب أن تعرف هذه الأدوات المساعدة ما الذي تبحث عنه، ولهذا فهي تحتوي على قائمة كاملة من الملفات المعرضة للخطر، على سبيل المثال:

/cgi-bin/cgiemail/uargg.txt
/random_banner/index.cgi
/random_banner/index.cgi
/cgi-bin/mailview.cgi
/cgi-bin/maillist.cgi
/cgi-bin/userreg.cgi

/iissamples/ISSamples/SQLQHit.asp
/SiteServer/admin/findvserver.asp
/scripts/cphost.dll
/cgi-bin/finger.cgi

يمكننا العثور على كل من هذه الملفات باستخدام جوجل، بالإضافة إلى استخدام الكلمات فهرس أو inurl مع اسم الملف في شريط البحث: يمكننا العثور على مواقع بها نصوص برمجية ضعيفة، على سبيل المثال:

allinurl:/random_banner/index.cgi

باستخدام المعرفة الإضافية، يمكن للمتسلل استغلال ثغرة البرنامج النصي واستخدام هذه الثغرة الأمنية لإجبار البرنامج النصي على إصدار أي ملف مخزن على الخادم. على سبيل المثال، ملف كلمة المرور.

كيف تحمي نفسك من اختراق جوجل.

1. لا تنشر بيانات مهمة على خادم الويب.

حتى إذا قمت بنشر البيانات مؤقتًا، فقد تنساها أو سيكون لدى شخص ما الوقت للعثور على هذه البيانات وأخذها قبل مسحها. لا تفعل هذا. هناك العديد من الطرق الأخرى لنقل البيانات التي تحميها من السرقة.

2. تحقق من موقعك.

استخدم الطرق الموضحة للبحث في موقعك. قم بفحص موقعك بشكل دوري لمعرفة الطرق الجديدة التي تظهر على الموقع http://johnny.ihackstuff.com. تذكر أنه إذا كنت تريد أتمتة إجراءاتك، فستحتاج إلى الحصول على إذن خاص من Google. إذا قرأت بعناية http://www.google.com/terms_of_service.html، فستظهر لك العبارة: لا يجوز لك إرسال استفسارات آلية من أي نوع إلى نظام Google دون الحصول على إذن صريح مسبقًا من Google.

3. قد لا تحتاج إلى قيام Google بفهرسة موقعك أو جزء منه.

يتيح لك Google إزالة رابط لموقعك أو جزء منه من قاعدة بياناته، وكذلك إزالة الصفحات من ذاكرة التخزين المؤقت. بالإضافة إلى ذلك، يمكنك حظر البحث عن الصور على موقعك، ومنع ظهور أجزاء قصيرة من الصفحات في نتائج البحث، ويتم وصف جميع إمكانيات حذف الموقع في الصفحة http://www.google.com/remove.html. للقيام بذلك، يجب عليك تأكيد أنك المالك الحقيقي لهذا الموقع أو إدراج علامات في الصفحة أو

4. استخدم ملف robots.txt

ومن المعروف أن محركات البحث تنظر إلى ملف robots.txt الموجود في جذر الموقع ولا تقوم بفهرسة تلك الأجزاء المميزة بالكلمة عدم السماح. يمكنك استخدام هذا لمنع فهرسة جزء من الموقع. على سبيل المثال، لمنع فهرسة الموقع بأكمله، قم بإنشاء ملف robots.txt يحتوي على سطرين:

وكيل المستخدم: *
عدم السماح: /

ماذا يحدث أيضًا

لكي لا تبدو الحياة مثل العسل بالنسبة لك، سأقول أخيرًا أن هناك مواقع تراقب هؤلاء الأشخاص الذين يبحثون باستخدام الطرق الموضحة أعلاه عن ثغرات في البرامج النصية وخوادم الويب. مثال على هذه الصفحة هو

طلب.

حلوة قليلا. جرب بعضًا مما يلي بنفسك:

1. #mysql نوع ملف التفريغ: sql - ابحث عن مخلفات قاعدة بيانات MySQL
2. تقرير ملخص ثغرات المضيف - سيوضح لك نقاط الضعف التي اكتشفها الآخرون
3. phpMyAdmin يعمل على inurl:main.php - سيؤدي هذا إلى إغلاق عنصر التحكم من خلال لوحة phpmyadmin
4. ليس للتوزيع سريا
5. طلب ​​تفاصيل متغيرات خادم شجرة التحكم
6. يعمل في وضع الطفل
7. تم إنشاء هذا التقرير بواسطة WebLog
8. العنوان:index.of cgiirc.config
9. filetype:conf inurl:firewall -intitle:cvs - ربما يحتاج شخص ما إلى ملفات تكوين جدار الحماية؟ :)
10. العنوان:index.of Finance.xls - حسنًا....
11. intitle: فهرس محادثات dbconvert.exe – سجلات دردشة ICQ
12. intext: تحليل حركة المرور توبياس أويتيكر
13. العنوان: إحصائيات الاستخدام التي تم إنشاؤها بواسطة Webalizer
14.intitle: إحصائيات إحصائيات الويب المتقدمة
15. intitle:index.of ws_ftp.ini – تكوين ws ftp
16. inurl:ipsec.secrets يحمل أسرارًا مشتركة – مفتاح سري – اكتشاف جيد
17.inurl:main.php مرحبًا بك في phpMyAdmin
18.inurl:معلومات الخادم Apache Server Information
19. الموقع: درجات مسؤول التعليم
20. ORA-00921: نهاية غير متوقعة لأمر SQL - الحصول على المسارات
21. العنوان:index.of trillian.ini
22. intitle:فهرس pwd.db
23.intitle:index.ofpeople.lst
24. العنوان:index.of master.passwd
25.inurl:passlist.txt
26. العنوان: فهرس .mysql_history
27. العنوان: فهرس النص:globals.inc
28. العنوان:index.of administrates.pwd
29. العنوان: فهرس الخ الظل
30.intitle:index.ofsecring.pgp
31.inurl:config.php dbuname dbpass
32.inurl:تنفيذ نوع الملف:ini

  • "اختراق جوجل"
  • مركز التدريب "Informzashita" http://www.itsecurity.ru - مركز متخصص رائد في مجال التدريب على أمن المعلومات (ترخيص لجنة موسكو للتعليم رقم 015470، اعتماد الدولة رقم 004251). مركز التدريب المعتمد الوحيد لأنظمة أمن الإنترنت وClearswift في روسيا ودول رابطة الدول المستقلة. مركز تدريب معتمد من ميكروسوفت (تخصص أمني). يتم تنسيق برامج التدريب مع اللجنة الفنية الحكومية في روسيا، FSB (FAPSI). شهادات التدريب ووثائق الدولة للتدريب المتقدم.

    SoftKey هي خدمة فريدة للمشترين والمطورين والتجار والشركاء التابعين. بالإضافة إلى ذلك، يعد هذا أحد أفضل متاجر البرامج عبر الإنترنت في روسيا وأوكرانيا وكازاخستان، والذي يقدم للعملاء مجموعة واسعة والعديد من طرق الدفع ومعالجة الطلبات السريعة (في كثير من الأحيان فورية) وتتبع عملية الطلب في القسم الشخصي وخصومات متنوعة من المتجر والمصنعين BY.

    مرحبا القراء موقع إلكتروني)

    في هذه المقالة سنلقي نظرة على Phoca Guestbook - وهو أحد مكونات دفتر الزوار مواقع جوملا.

    ماذا يمكننا أن نقول عن هذا المكون... إنه بسيط جدًا وسهل الإدارة، ويحتوي على عدد كافٍ من الإعدادات لنشر التعليقات على موقع الويب الخاص بك.

    ميزات سجل الزوار Phoca:

    • اختيار حقوق الوصول للمستخدمين؛
    • تصفية الكلمات والعبارات غير المرغوب فيها؛
    • حظر عناوين IP؛
    • الحد من عدد الأحرف المطبوعة؛
    • كلمة التحقق؛
    • تحديث الرسائل (يتم فحصها بواسطة المشرف)؛
    • مظهر المراجعات (اللون وعرض الاسم وعرض البريد الإلكتروني وعنوان موقع الويب).

    لذلك دعونا ننظر إلى المكون.

    بعد التثبيت، سجل الزوار فوكالا يحتاج إلى الإعدادات العالمية.

    لوحة التحكم:

    • المشاركات - جميع الرسائل التي تركها المستخدمون؛
    • دفاتر الزوار - الفئات (كتب الزوار التي تم إنشاؤها)؛
    • المعلومات - تحديث المعلومات والمكونات.

    كما ترون، في الصورة على اليمين يوجد زر "خيارات". إذا قمت بالنقر فوقه، يمكنك تكوين دفتر الزوار والمكون نفسه على نطاق أوسع.

    معامل

    معنى

    عرض الموضوع في النموذج

    (نعم | نعم (مطلوب) | لا) إظهار أو إخفاء حقل الكائن في النموذج، قم بتعيين ما إذا كان حقل الموضوع مطلوبًا

    عرض الاسم في النموذج

    (نعم | نعم (مطلوب) | لا) إظهار أو إخفاء اسم الحقل في النموذج، قم بتعيين ما إذا كان حقل الاسم مطلوبًا

    عرض البريد الإلكتروني في النموذج

    (نعم | نعم (مطلوب) | لا) إظهار أو إخفاء حقل البريد الإلكتروني في النموذج، قم بتعيين حقل البريد الإلكتروني إذا لزم الأمر

    عرض موقع الويب في النموذج

    (نعم | نعم (مطلوب) | لا) إظهار أو إخفاء حقل موقع الويب في النموذج، قم بتعيين الحقل إذا كان موقع الويب مطلوبًا

    عرض المحتوى في النموذج

    (نعم | نعم (مطلوب) | لا) إظهار أو إخفاء محتويات الحقل في النموذج

    تمكين محرر جافا سكريبت

    (نعم | لا) تمكين أو تعطيل محرر JavaScript

    عرض المسار في محرر جافا سكريبت

    (نعم | لا) إظهار أو إخفاء معلومات مسار محرر JavaScript

    (إخفاء | عرض) تحديد ما إذا كان يجب عرض النموذج أم لا.

    (أعلى | أسفل) حدد الموقع الحالي

    عرض علامة المطلوبة

    (نعم | لا) اضبط لعرض الحقول المطلوبة

    (نعم | لا) اضبط لعرض الرسائل.

    العرض (بالبكسل)

    الارتفاع (بالبكسل)

    تعيين عرض الجدول (الجدول الذي يتم عرض النموذج فيه بالبكسل)

    معامل

    معنى

    إذا ترك مستخدم غير مسجل رسالة، فيمكنك منحه اسمًا افتراضيًا. على سبيل المثال: ضيف

    اسم المستخدم أو الاسم

    (اسم المستخدم | الاسم الأول) حدد الاسم الذي يجب عرضه في دفتر الزوار (اسم المستخدم أو اسم المستخدم الحقيقي)

    تعطيل فحص المستخدم

    (لا | نعم) التحقق من المستخدم (لا يوصى بتعطيل هذا الخيار)

    الأعضاء المسجلين والمفعلين

    (نعم | لا) إذا كانت الإجابة بنعم، فيمكن للمستخدمين المسجلين فقط إضافة رسائل جديدة

    (نعم | لا) إذا كانت الإجابة بنعم، فسيتم عرض الرسالة بعد موافقة المشرف

    لإرسال رسالة

    معامل

    معنى

    عرض الاسم في المشاركة

    (نعم | لا) إظهار أو إخفاء الاسم (اسم المستخدم) (سجل الزوار)

    عرض البريد الإلكتروني في المشاركة

    (نعم | لا) إظهار أو إخفاء البريد الإلكتروني (دفتر الزوار)

    عرض الموقع في آخر

    (نعم | لا) إظهار أو إخفاء الموقع في (سجل الزوار)

    ضبط تنسيق التاريخ

    ضبط لون الخط

    لون الخط الثاني

    تعيين لون الخط الثاني (لون خط التاريخ)

    لون الخلفية

    تعيين لون الخلفية

    تحديد لون الحدود

    القيمة الافتراضية للصفحات

    قم بتعيين القيمة الافتراضية لترقيم الصفحات

    ضبط ترقيم الصفحات. مفصولة بفاصلة (،)

    ترقيم الصفحات إخفاء الكل

    (نعم | لا) سيتم إخفاء كافة القيم (ترقيم الصفحات)

    معامل

    معنى

    مرشح الكلمات المحظورة

    تعيين الكلمات المحظورة التي لن يتم عرضها في الواجهة. يتم فصل الكلمات عن بعضها البعض بفاصلة (،)

    مرشح الكلمات الكاملة المحظورة

    ضبط جميع الكلمات المحظورة التي لن يتم عرضها في الواجهة. يتم فصل الكلمات عن بعضها البعض بفاصلة (،)

    حفظ المنشور مع الكلمات المحظورة

    (نعم | لا) إذا كانت الإجابة بنعم، فسيتم حفظ المشاركات التي تتضمن كلمات محظورة في سجل الزوار (سيتم إخفاء الكلمات المحظورة إذا تم حفظها)

    أضف عناوين IP التي تريد حظرها. افصل بين كل عنوان IP بفاصلة (،)

    الحد الأقصى لعدد الأحرف

    قم بتعيين الحد الأقصى لعدد الأحرف التي يمكن تخزينها في قاعدة البيانات

    قم بتعيين الحد الأقصى لعدد عناوين URL التي يمكن عرضها في المنشور (0: لن يتم عرض أي روابط في المنشورات، -1: سيتم عرض جميع عناوين URL في المنشورات، على سبيل المثال 3: سيتم عرض ثلاثة روابط فقط من جميع عناوين URL في المنشورات)

    كلمات تعريف URL غير مسموح بها

    مجموعة من الكلمات التي ستحدد ما إذا كان مسموحًا بعناوين URL في الرسالة. وافصل بين كل كلمة بفاصلة (،). مثال:: / /،. هتم،. آسيا والمحيط الهادئ. جي إس بي،. بي إتش بي، شبكة الاتصالات العالمية. كوم،. منظمة،.

    تمكين أو تعطيل حماية Captcha

    قم بتغيير هذه المعلمة فقط إذا كنت لن ترى كلمة التحقق.

    تمكين كلمة التحقق - المستخدمين

    (الكل | غير مسجل) خيار عرض كلمة التحقق لمجموعات المستخدمين (سواء لإظهار كلمة التحقق للمستخدمين المسجلين)

    أحرف الكابتشا القياسية

    الأرقام والأحرف الصغيرة والأحرف الكبيرة التي سيتم عرضها في صورة Captcha القياسية

    شخصيات الرياضيات كابتشا

    الأرقام والأحرف الصغيرة والأحرف الكبيرة التي سيتم عرضها في صور Math Captcha

    رموز TTF

    الأرقام والأحرف الصغيرة والأحرف الكبيرة التي سيتم عرضها في صور TTF Captcha

    أحرف TTF Captcha

    لعرض كلمة التحقق، أدخل الرمز العام

    reCAPTCHA المفتاح العام

    تثبيت recaptcha المفتاح العام

    تمكين الحماية من البريد العشوائي في Akismet

    (لا | نعم) يرسل جميع بيانات إدخال كتاب الجيوستبوك الجديد إلى Akismet - خدمة ويب للتحقق من البريد العشوائي

    حظر البريد العشوائي (Akismet)

    (لا | نعم) حظر المشاركات التي لم يتم التحقق منها بواسطة Akismet

    قم بتثبيت مفتاح Akismet API لاستخدامه في Akismet-Spam. احصل عليها على https://akismet.com/signup/ مجانًا

    عنوان URL الرئيسي لموقعك (يجب أن يتضمن عنوان URL البادئة http://)

    تمكين تنقية HTML

    (لا | نعم) تمكين أو تعطيل HTML Purifier

    تعيين لاحقة الجلسة (هذه ميزة أمان، لتغيير اسم الجلسة، قم بتعيين لاحقة فريدة، على سبيل المثال: a100b20c3)

    تمكين الحقل المخفي

    (لا | نعم) تمكين أو تعطيل الحقول المخفية. تحاول بعض روبوتات البريد العشوائي ملء جميع الحقول على الفور؛ إذا قاموا بملء هذا الحقل المخفي الذي لا يستطيع الشخص رؤيته، فلن تتم إضافة الإدخال إلى دفتر الزوار.

    (نعم | لا) تمكين ذاكرة التخزين المؤقت.

    تمكين الكشف عن الصفحة الواردة

    (نعم | لا) تمكين أو تعطيل اكتشاف الصفحات الواردة. هذه ميزة أمنية. إذا قمت بتمكينه، فسيتم حفظ الصفحة التي جاء منها منشور سجل الزوار وعرضها في الواجهة.

    كنت أعمل مؤخرًا على موقع الويب الخاص بي، وقررت أنني أرغب في تنفيذ سجل الزوار. لقد بدأت البحث في الويب للعثور على أفضل سجل زوار لموقعي على الويب، ولكن عندما لم يحضر أحد، فكرت "مرحبًا، أنا مطور، لماذا لا أقوم بإنشاء سجل خاص بي؟"

    لقد كان من السهل جدًا إنشاء سجل زوار - يمكنك القيام بذلك أيضًا. في هذا البرنامج التعليمي، سأوضح لك كيف. سأفترض أن لديك بالفعل معرفة بأساسيات برمجة ASP.NET، وأنك تعرف التقنيات المستخدمة في codebehind، وأن لديك بعض مهارات XML/XSL.

    ملخص

    ما الذي نحتاجه لإنشاء سجل الزوار؟ نحتاج إلى نموذجي ويب: أحدهما يمكن للمستخدم إدخال اسمه وعنوان بريده الإلكتروني وتعليقه، والآخر يُستخدم لعرض هذه التعليقات عند تسجيل الدخول إلى سجل الزوار. بالطبع يمكننا بناء هذه الوظيفة في نموذج ويب واحد، ولكن للحصول على تعليمات برمجية نظيفة، سأستخدم نموذجي ويب مع العديد من ملفات التعليمات البرمجية الخلفية (سأناقشها بمزيد من التفصيل بعد قليل).

    سنحتاج أيضًا إلى قاعدة بيانات للاحتفاظ بالمعلومات المدخلة عبر النموذج. لقد استخدمت ملف XML بسيطًا (قاعدة بيانات) لتخزين المعلومات التي أدخلها المستخدم. لتصور XML، سنستخدم XSL.

    لذلك، باختصار، نحتاج إلى ما يلي:

    • نموذجان للويب
    • كودخلف
    • قاعدة البيانات

    في سجل الزوار، يكفي عادةً تخزين اسم المستخدم وموقعه وعنوان بريده الإلكتروني وعنوان موقع الويب والتعليق. بالطبع، يمكنك تخزين المزيد من الحقول، ولكن لأغراضنا، هذه كافية. سنقوم بتخزين هذه البيانات في ملف XML، والذي سيبدو كما يلي:




    سونو كابور
    ألمانيا
    [البريد الإلكتروني محمي]
    www.codefinger.de
    سجل الزوار هذا مكتوب بواسطة سونو كابور.
    آمل أن تعجبك. لمعرفة كيفية إنشاء سجل الزوار هذا،
    اقرأ القصة كاملة على موقع الويب الخاص بي.


    التوقيع في سجل الزوار

    سوف نسمح للمستخدم "بالتوقيع" على سجل الزوار الخاص بنا عن طريق إدخال بعض المعلومات في نموذج ويب بسيط - في مثالنا هذا هو ملف Guestbook.aspx. أستخدم الحقول التالية في نموذج الويب:

    • موقع
    • بريد إلكتروني
    • موقع إلكتروني
    • تعليق

    إليك الكود:

    <% @Page Language="C#" Debug="true" Src="Guestbook.cs"
    يرث = "سجل الزوار" %>


    ...
    ...

    كونترولتوفاليديت = "الاسم"
    ErrorMessage="يجب عليك إدخال قيمة في مربع النص1"
    عرض = "ديناميكي"> أدخل الاسم

    ControlToValidate="location" ErrorMessage="يجب عليك الدخول
    قيمة في textbox1" Display="dynamic">
    إدخال الدولة



    الأعمدة = "50" الصفوف = "10" التفاف = "صحيح" runat = "الخادم"/>

    ControlToValidate="comment" ErrorMessage="يجب عليك الدخول
    قيمة في textbox1" Display="dynamic">
    أدخل التعليق

    عند النقر = "حفظ_التعليق"/>

    ...
    ...القيام ببعض الأشياء التصورية
    ...

    لتجنب الخلط بينك وبين التعليمات البرمجية غير الضرورية، قمت بإزالة علامات التصور - بما في ذلك الجدول ورأس الجدول وما إلى ذلك. - من هذا المثال (على الرغم من أن كل هذه العناصر مضمنة بالطبع في الكود القابل للتنزيل والمقدم في نهاية هذا البرنامج التعليمي). نظرًا لأننا نعرض فقط نموذجًا بسيطًا يحتوي على عدد قليل من الحقول والأزرار، فلا يمكنك رؤية أي كود برمجة حقيقي في هذا الملف. وذلك لأن كافة الوظائف مخفية في التعليمات البرمجية الخلفية.

    في السطر الأول من الكود أعلاه، قمت بتعيين سمة SRC للسماح لملف ASP.NET بمعرفة أننا نستخدم الملف codebehind Guestbook.cs، وقمت أيضًا بتعيين السمة Inherits مع اسم الفئة المقابل. تتيح هذه السمة للملف معرفة الفئة التي يجب أن يرثها.

    بعد ذلك، قمت بتنفيذ الحقول النصية المطلوبة. تذكر أنه إذا كنت تريد استخدام نفس المتغيرات في codebehind، فيجب أن يكون لها نفس المعرف في كلا الملفين، ويجب الإعلان عنها على أنها عامة.

    في القسم التالي من التعليمات البرمجية، استخدمت عناصر التحكم في أداة التحقق من صحة ASP.NET. تتحقق عناصر التحكم هذه مما إذا كان المستخدم قد أدخل قيمة في حقل النص، دون القيام برحلة ذهابًا وإيابًا إلى الخادم. يتم تنفيذ الكود من جانب العميل.

    أخيرًا، قمت بتنفيذ زر إرسال باستخدام حدث OnClick يسمى Save_Comment. يتم استخدام هذا الحدث لتخزين المعلومات التي أدخلها المستخدم في ملف XML. وظيفة هذا الحدث متاحة في Guestbook.cs. لقد قمت أيضًا بتنفيذ زر إعادة الضبط – وهذا كل شيء! لا يوجد شيء آخر يجب القيام به لنموذج الويب. الآن، إذا قمت بتشغيل Guestbook.aspx، فيجب أن تشاهد نموذج ويب يبدو كما يلي:

    نحن نعرف الآن كيفية عرض نموذج الويب، لكننا لم نر الكود الذي يتعامل مع الحدث في Guestbooks.cs. دعونا نلقي نظرة على ذلك الآن.

    استخدام النظام؛
    باستخدام System.Web؛
    باستخدام System.Web.UI؛
    باستخدام System.Xml؛

    سجل زوار الطبقة العامة: الصفحة
    {
    // قم بإنشاء عناصر تحكم الويب المطلوبة بنفس الاسم
    في ملف Guestbook.aspx
    اسم مربع النص العام؛
    موقع TextBox العام؛
    البريد الإلكتروني العام في TextBox؛
    موقع TextBox العام؛
    تعليق TextBox العام؛

    الفراغ العام Save_Comment (مرسل الكائن، EventArgs e)
    {
    // كل شيء على ما يرام، فلنحفظ البيانات
    في ملف XML
    SaveXMLData();

    // قم بإزالة قيم مربعات النص
    name.Text = ""؛
    location.Text = ""؛
    موقع الويب. النص = ""؛
    email.Text = ""؛
    تعليق.نص = "";
    }
    }

    الفراغ الخاص SaveXMLData()
    {
    // قم بتحميل ملف xml
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(Server.MapPath("guestbook.xml"));

    // أنشئ عنصر ضيف جديدًا وأضفه إلى العقدة الجذرية
    XmlElementparentNode = xmldoc.CreateElement("guest");
    xmldoc.DocumentElement.PrependChild(parentNode);

    // قم بإنشاء العقد المطلوبة
    XmlElement nameNode = xmldoc.CreateElement("name");
    XmlElement locationNode = xmldoc.CreateElement("location");
    XmlElement emailNode = xmldoc.CreateElement("email");
    XmlElement websiteNode = xmldoc.CreateElement("website");
    XmlElement commentNode = xmldoc.CreateElement("comment");

    // استرداد النص
    XmlText nameText = xmldoc.CreateTextNode(name.Text);
    XmlText locationText = xmldoc.CreateTextNode(location.Text);
    XmlText emailText = xmldoc.CreateTextNode(email.Text);
    XmlText websiteText = xmldoc.CreateTextNode(website.Text);
    XmlText commentText = xmldoc.CreateTextNode(comment.Text);

    // إلحاق العقد بالعقدة الأصلية بدون القيمة
    parentNode.AppendChild(nameNode);
    parentNode.AppendChild(locationNode);
    parentNode.AppendChild(emailNode);
    parentNode.AppendChild(websiteNode);
    parentNode.AppendChild(commentNode);

    // احفظ قيمة الحقول في العقد
    nameNode.AppendChild(nameText);
    locationNode.AppendChild(locationText);
    emailNode.AppendChild(emailText);
    websiteNode.AppendChild(websiteText);
    commentNode.AppendChild(commentText);

    // احفظ في ملف XML
    xmldoc.Save(Server.MapPath("guestbook.xml"));

    // اعرض للمستخدم سجل الزوار الموقع
    Response.Redirect("viewguestbook.aspx");
    }
    }

    رائع! هذا هو ملف التعليمات البرمجية الخلفية الخاص بنا... ولكن ما الذي يحدث هنا بالفعل؟ لن تصدق ذلك، ولكن الجواب هو: "ليس كثيرًا"!

    أولاً، نقوم بتنفيذ الحد الأدنى من مساحات الأسماء المطلوبة التي نحتاجها للوصول إلى العديد من الوظائف المهمة. ثم أقوم بإنشاء فصل جديد يسمى سجل الزوار:

    سجل زوار الطبقة العامة: الصفحة

    لاحظ أن هذه الفئة هي التي ورثها ملف Guestbook.aspx. ثم نعلن عن 5 متغيرات عامة من النوع textbox. تذكر أنه يجب أن تكون الأسماء هنا مطابقة لتلك التي استخدمناها عندما أنشأنا مربعات النص في Guestbook.aspx. بعد ذلك، كما ترون، نستخدم الحدث Save_Comment، الذي يتم تشغيله بواسطة زر الإرسال الذي قمنا بتضمينه في ملف Guestbookpx. يستخدم هذا الحدث لحفظ البيانات.

    عملية الادخار

    تقوم الدالة SaveXMLData() بحفظ المعلومات لنا. نظرًا لأننا نستخدم قاعدة بيانات XML لتخزين المعلومات، فإننا نستخدم فئات XmlDocument وXmlElement وXmlText، والتي توفر جميع الوظائف التي نحتاجها.

    بعد ذلك، نقوم بإنشاء كائن فئة XMLDocument جديد ونقوم بتحميل ملف Guestbook.xml. يتم إنشاء العقد المطلوبة باستخدام الوظيفة CreateElement، ويتم استرداد المعلومات التي أدخلها المستخدم وتخزينها في كائن XmlText. بعد ذلك، نقوم بتخزين العقد التي تم إنشاؤها بدون أي قيم، وذلك باستخدام الدالة AppendChild بالتزامن مع كائن XmlDocument الرئيسي.

    وأخيرًا، يتم تخزين القيم في العقد التي أنشأناها للتو، ونحفظ جميع التغييرات في ملف Guestbook.xml، ونعيد توجيه الصفحة إلى viewguestbook.aspx، حيث يتم عرض التعليق المخزن.

    عرض سجل الزوار

    لعرض سجل الزوار، يجب علينا إنشاء نموذج ويب آخر:

    <% @Page Language="C#" Debug="true" Src="ViewGuestbook.cs"
    يرث = "ViewGuestbook" %>

    كما ترون، نموذج الويب هذا لا يفعل الكثير حقًا. فهو ببساطة يستدعي الملف codebehind، ViewGuestbook.cs. دعونا نلقي نظرة على هذا الملف.

    استخدام النظام؛
    باستخدام System.Web؛
    باستخدام System.Web.UI؛
    باستخدام System.Web.UI.WebControls؛
    باستخدام System.Xml؛
    باستخدام System.Xml.Xsl؛
    باستخدام System.IO؛

    عرض سجل الزوار للفصل العام: الصفحة
    {
    Page_Load باطلة خاصة (مرسل الكائن، System.EventArgs e)
    {
    // قم بتحميل ملف XML
    XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath("guestbook.xml"));

    // قم بتحميل ملف XSL
    XslTransform xslt = new XslTransform();
    xslt.Load(Server.MapPath("guestbook.xsl"));

    String xmlQuery = "// سجل الزوار"؛
    XmlNodeListNodeList=doc.Document
    Element.SelectNodes(xmlQuery);

    MemoryStream ms=new MemoryStream();
    xslt.Transform(doc, null, ms);
    ms.Seek(0, SeekOrigin.Begin);

    StreamReader sr = new StreamReader(ms);

    // اطبع النتيجة
    Response.Write(sr.ReadToEnd());
    }
    }

    لقد قمت بإنشاء هذا الفصل لعرض جميع التعليقات المقدمة من خلال سجل الزوار لمستخدمينا. مرة أخرى، أول شيء نقوم به هو تنفيذ مساحات الأسماء المطلوبة، وبما أننا نستخدم XSL للتصور، يجب علينا التأكد من تضمين مساحة الاسم System.Xml.Xsl .

    ثم نقوم بإنشاء فئة جديدة تسمى ViewGuestbook، مع وظيفة خاصة تحمل في ثناياه عوامل تسمى Page_Load. يتم استدعاء هذه الوظيفة دائمًا عند تحميل الصفحة، أو عندما يقوم المستخدم بالتحديث. هنا، تقوم الوظيفة بتحميل ملف Guestbook.xml، ثم يتم استخدام فئة XslTranform لتحويل عناصر XML إلى HTML قبل تحميل Guestbook.xsl بمساعدة كائن XslTransform.

    بعد ذلك، نقوم بإنشاء كائن جديد من فئة XmlNodeList، والذي سيسمح لنا بتحديد العقد المطلوبة. نستخدم بعد ذلك فئة MemoryStream، المتاحة عبر مساحة الاسم System.IO، لإنشاء دفق يحتوي على ذاكرة كمخزن دعم، واستخدام وظيفة التحويل لتعيين بيانات XML لدفق الذاكرة هذا. تقوم الدالة Seek بتعيين الموضع الحالي إلى الصفر.

    نقوم بعد ذلك بإنشاء كائن من فئة StreamReader، الذي يقرأ الدفق، ونطبع النتيجة بمساعدة الدالة ReadToEnd(). تقوم هذه الوظيفة بقراءة الدفق من الموضع الحالي إلى النهاية. إذا قمت بتشغيل viewguestbook.aspx، فيجب أن تشاهد نموذج ويب مثل هذا:

    اكس اس ال

    كما ذكرت سابقًا، نستخدم XSL لتحويل البيانات من XML إلى HTML. لقد افترضت أنك من ذوي الخبرة بالفعل في استخدام XSLT، لذا سأتطرق فقط إلى الجوانب المهمة هنا. لقد استخدمت حلقة XSL for-each للتكرار عبر جميع الضيوف في الكتاب، والتي تبدو كما يلي:



    وفي الحلقة نسمي اسم قالب XSL، والذي يبدو كالتالي:



    خاتمة

    كما ترون، ليس من الصعب جدًا إنشاء سجل زوار. حظ سعيد! ولا تنسى أن.

    يبدأ أي بحث عن نقاط الضعف في موارد الويب بالاستطلاع وجمع المعلومات.
    يمكن أن يكون الذكاء إما نشطًا - القوة الغاشمة للملفات والأدلة الخاصة بالموقع، أو تشغيل أدوات فحص الثغرات الأمنية، أو تصفح الموقع يدويًا، أو سلبيًا - البحث عن المعلومات في محركات البحث المختلفة. يحدث أحيانًا أن تصبح الثغرة الأمنية معروفة حتى قبل فتح الصفحة الأولى من الموقع.

    كيف يكون هذا ممكنا؟
    روبوتات البحث، التي تتجول باستمرار على الإنترنت، بالإضافة إلى المعلومات المفيدة للمستخدم العادي، غالبًا ما تسجل الأشياء التي يمكن للمهاجمين استخدامها لمهاجمة مورد الويب. على سبيل المثال، أخطاء البرنامج النصي والملفات التي تحتوي على معلومات حساسة (من ملفات التكوين والسجلات إلى الملفات التي تحتوي على بيانات المصادقة والنسخ الاحتياطية لقاعدة البيانات).
    من وجهة نظر روبوت البحث، فإن رسالة الخطأ المتعلقة بتنفيذ استعلام SQL هي نص عادي، لا يمكن فصله، على سبيل المثال، عن وصف المنتجات على الصفحة. إذا صادف روبوت البحث فجأة ملفًا بامتداد .sql، والذي انتهى به الأمر لسبب ما في مجلد عمل الموقع، فسيتم اعتباره جزءًا من محتوى الموقع وسيتم فهرسته أيضًا (بما في ذلك، ربما كلمات المرور) المحدد فيه).

    ويمكن العثور على مثل هذه المعلومات من خلال معرفة كلمات رئيسية قوية، وفريدة من نوعها في كثير من الأحيان، تساعد في فصل "الصفحات الضعيفة" عن الصفحات التي لا تحتوي على ثغرات.
    توجد قاعدة بيانات ضخمة من الاستعلامات الخاصة التي تستخدم الكلمات الرئيسية (ما يسمى الحمقى) على موقع Exploit-db.com وتُعرف باسم قاعدة بيانات Google Hack.

    لماذا جوجل؟
    تستهدف Dorks بشكل أساسي Google لسببين:
    - التركيب الأكثر مرونة للكلمات الرئيسية (كما هو موضح في الجدول 1) والأحرف الخاصة (كما هو موضح في الجدول 2)؛
    - لا يزال فهرس Google أكثر اكتمالا من فهرس محركات البحث الأخرى؛

    الجدول 1 - الكلمات الرئيسية لجوجل

    الكلمة الرئيسية
    معنى
    مثال
    موقع
    البحث فقط في الموقع المحدد. يأخذ في الاعتبار عنوان url فقط
    site:somesite.ru - سيجد جميع الصفحات الموجودة في مجال معين ونطاقات فرعية معينة
    inurl
    البحث عن طريق الكلمات الموجودة في uri. على عكس CL. الكلمات "الموقع"، تبحث عن التطابقات بعد اسم الموقع
    inurl:news - يبحث عن جميع الصفحات التي تظهر فيها الكلمة المحددة في عنوان uri
    في النص
    البحث في نص الصفحة
    intext:"اختناقات مرورية" - تشبه تمامًا الطلب المعتاد لـ "اختناقات مرورية"
    intitle
    ابحث في عنوان الصفحة. النص بين العلامات <br></td> <td width="214">intitle:"index of" - سيجد جميع الصفحات التي تحتوي على قوائم الدليل <br></td> </tr><tr><td width="214">تحويلة <br></td> <td width="214">البحث عن الصفحات ذات الامتداد المحدد <br></td> <td width="214">تحويلة:pdf - يجد جميع ملفات pdf <br></td> </tr><tr><td width="214">نوع الملف <br></td> <td width="214">حاليا، مشابهة تماما للفئة. كلمة "إكست" <br></td> <td width="214">نوع الملف:pdf - مشابه <br></td> </tr><tr><td width="214">متعلق ب <br></td> <td width="214">ابحث عن مواقع ذات مواضيع مشابهة <br></td> <td width="214">ذات صلة:google.ru - سوف تظهر نظائرها <br></td> </tr><tr><td width="214">وصلة <br></td> <td width="214">ابحث عن المواقع التي ترتبط بهذا <br></td> <td width="214">الرابط:somesite.ru - سيجد جميع المواقع التي لها رابط لهذا <br></td> </tr><tr><td width="214">يُعرِّف <br></td> <td width="214">إظهار تعريف الكلمة <br></td> <td width="214">تعريف:0day - تعريف المصطلح <br></td> </tr><tr><td width="214">مخبأ <br></td> <td width="214">إظهار محتويات الصفحة في ذاكرة التخزين المؤقت (إن وجدت) <br></td> <td width="214">ذاكرة التخزين المؤقت:google.com - ستفتح صفحة مخبأة <br></td> </tr></tbody></table><p>الجدول 2 - الأحرف الخاصة لاستعلامات Google <br></p><table><tbody><tr><td width="214"><b>رمز</b><br></td> <td width="214"><b>معنى</b><br></td> <td width="214"><b>مثال</b><br></td> </tr><tr><td width="214">“<br></td> <td width="214">العبارة بالضبط <br></td> <td width="214">intitle:"صفحة تكوين جهاز التوجيه RouterOS" - ابحث عن أجهزة التوجيه <br></td> </tr><tr><td width="214">*<br></td> <td width="214">أي نص <br></td> <td width="214">inurl: "bitrix*mcart" - ابحث عن المواقع على bitrix باستخدام وحدة mcart الضعيفة <br></td> </tr><tr><td width="214">.<br></td> <td width="214">أي شخصية <br></td> <td width="214">Index.of - مشابه لفهرس الطلب <br></td> </tr><tr><td width="214">-<br></td> <td width="214">حذف كلمة <br></td> <td width="214">خطأ -تحذير - إظهار كافة الصفحات التي تحتوي على خطأ ولكن بدون تحذير <br></td> </tr><tr><td width="214">..<br></td> <td width="214">يتراوح <br></td> <td width="214">cve 2006..2016 - إظهار نقاط الضعف حسب السنة بدءًا من عام 2006 <br></td> </tr><tr><td width="214">|<br></td> <td width="214">منطقية "أو" <br></td> <td width="214">لينكس | windows - إظهار الصفحات التي تظهر فيها الكلمة الأولى أو الثانية <br></td> </tr></tbody></table><br>يجدر بنا أن نفهم أن أي طلب إلى محرك البحث هو بحث بالكلمات فقط. <br>من غير المجدي البحث عن الأحرف الوصفية في الصفحة (علامات الاقتباس والأقواس وعلامات الترقيم وما إلى ذلك). حتى البحث عن العبارة المحددة بين علامتي الاقتباس هو بحث عن كلمة، يتبعه بحث عن التطابق التام في النتائج. <p>يتم تقسيم كافة قواعد بيانات Google Hack بشكل منطقي إلى 14 فئة ويتم عرضها في الجدول 3. <br>الجدول 3 - فئات قاعدة بيانات Google Hack <br></p><table><tbody><tr><td width="168"><b>فئة</b><br></td> <td width="190"><b>ما يسمح لك أن تجد</b><br></td> <td width="284"><b>مثال</b><br></td> </tr><tr><td width="168">موطئ قدم <br></td> <td width="190">قذائف الويب ومديري الملفات العامة <br></td> <td width="284">ابحث عن جميع المواقع التي تم اختراقها حيث تم تحميل صفحات الويب المدرجة: <br>(العنوان: "phpshell" أو العنوان: "c99shell" أو العنوان: "r57shell" أو العنوان: "PHP Shell" أو العنوان: "phpRemoteView") `rwx` "uname" <br></td> </tr><tr><td width="168">الملفات التي تحتوي على أسماء المستخدمين <br></td> <td width="190">ملفات التسجيل وملفات التكوين والسجلات والملفات التي تحتوي على تاريخ الأوامر المدخلة <br></td> <td width="284">ابحث عن كافة ملفات التسجيل التي تحتوي على معلومات الحساب: <br><i>نوع الملف: reg reg +intext: "مدير حساب الإنترنت"</i><br></td> </tr><tr><td width="168">الدلائل الحساسة <br></td> <td width="190">أدلة تحتوي على معلومات متنوعة (المستندات الشخصية، وتكوينات VPN، والمستودعات المخفية، وما إلى ذلك) <br></td> <td width="284">ابحث عن جميع قوائم الدليل التي تحتوي على الملفات المتعلقة بـ VPN: <br><i>عنوان "التكوين": "فهرس" intext:vpn</i><br>المواقع التي تحتوي على مستودعات git: <br><i>(intext:"index of /.git") ("الدليل الأصلي")</i><br></td> </tr><tr><td width="168">كشف خادم الويب <br></td> <td width="190">الإصدار ومعلومات أخرى حول خادم الويب <br></td> <td width="284">ابحث عن وحدات التحكم الإدارية لخادم JBoss: <br><i>inurl:"/web-console/" intitle:"وحدة تحكم الإدارة"</i><br></td> </tr><tr><td width="168">الملفات المعرضة للخطر <br></td> <td width="190">البرامج النصية التي تحتوي على نقاط الضعف المعروفة <br></td> <td width="284">ابحث عن المواقع التي تستخدم برنامجًا نصيًا يسمح لك بتحميل ملف عشوائي من الخادم: <br><i>allinurl:forcedownload.php?file=</i><br></td> </tr><tr><td width="168">الخوادم الضعيفة <br></td> <td width="190">البرامج النصية للتثبيت، وأصداف الويب، ووحدات التحكم الإدارية المفتوحة، وما إلى ذلك. <br></td> <td width="284">ابحث عن وحدات تحكم PHPMyAdmin المفتوحة التي تعمل كجذر: <br><i>intitle:phpMyAdmin "مرحبًا بك في phpMyAdmin ***" "يعمل على * كجذر@*"</i><br></td> </tr><tr><td width="168">رسائل خاطئة <br></td> <td width="190">غالبًا ما تكشف الأخطاء والتحذيرات المختلفة معلومات مهمة - بدءًا من إصدار نظام إدارة المحتوى (CMS) وحتى كلمات المرور <br></td> <td width="284">المواقع التي بها أخطاء في تنفيذ استعلامات SQL لقاعدة البيانات: <br><i>"تحذير: mysql_query()" "استعلام غير صالح"</i><br></td> </tr><tr><td width="168">ملفات تحتوي على معلومات مثيرة <br></td> <td width="190">الشهادات والنسخ الاحتياطية ورسائل البريد الإلكتروني والسجلات ونصوص SQL وما إلى ذلك. <br></td> <td width="284">البحث عن البرامج النصية للتهيئة SQL: <br><i>نوع الملف: sql و"إدراج في" -الموقع:github.com</i><br></td> </tr><tr><td width="168">الملفات التي تحتوي على كلمات مرور <br></td> <td width="190">أي شيء يمكن أن يحتوي على كلمات مرور - السجلات، ونصوص SQL، وما إلى ذلك. <br></td> <td width="284">السجلات التي تذكر كلمات المرور: <br><i>نوع الملف:</i><i>سجل</i><i>في النص:</i><i>كلمة المرور |</i><i>تمر |</i><i>pw</i><br>البرامج النصية SQL التي تحتوي على كلمات المرور: <br><i>تحويلة:</i><i>SQL</i><i>في النص:</i><i>اسم المستخدم</i><i>في النص:</i><i>كلمة المرور</i><br></td> </tr><tr><td width="168">معلومات حساسة للتسوق عبر الإنترنت <br></td> <td width="190">المعلومات المتعلقة بعمليات الشراء عبر الإنترنت <br></td> <td width="284">البحث عن الرموز السرية: <br><i>dcid=</i><i>مليار =</i><i>دبوس</i><i>كود=</i><br></td> </tr><tr><td width="168">بيانات الشبكة أو الضعف <br></td> <td width="190">المعلومات التي لا تتعلق مباشرة بمورد الويب، ولكنها تؤثر على الشبكة أو الخدمات الأخرى غير المتعلقة بالويب <br></td> <td width="284">ابحث عن البرامج النصية لتكوين الوكيل التلقائي التي تحتوي على معلومات حول الشبكة الداخلية: <br><i>inurl:الوكيل | inurl:wpad تحويلة: باك | تحويلة: دات findproxyforurl</i><br></td> </tr><tr><td width="168">الصفحات التي تحتوي على بوابات تسجيل الدخول <br></td> <td width="190">الصفحات التي تحتوي على نماذج تسجيل الدخول <br></td> <td width="284">صفحات الويب سابلوجون: <br><i>intext:"2016 SAP AG. كل الحقوق محفوظة." العنوان: "تسجيل الدخول"</i><br></td> </tr><tr><td width="168">أجهزة الإنترنت المختلفة <br></td> <td width="190">الطابعات وأجهزة التوجيه وأنظمة المراقبة وما إلى ذلك. <br></td> <td width="284">ابحث عن لوحة تكوين الطابعة: <br><i>العنوان:"</i><i>حصان</i><i>ليزرجت"</i><i>عنوان URL:</i><i>مباحث أمن الدولة/</i><i>المصادقة/</i><i>تعيين_</i><i>التكوين_</i><i>معلومات الجهاز.</i><i>هتم</i><br></td> </tr><tr><td width="168">النصائح ونقاط الضعف <br></td> <td width="190">مواقع الويب على إصدارات CMS الضعيفة <br></td> <td width="284">ابحث عن المكونات الإضافية الضعيفة التي يمكنك من خلالها تحميل ملف عشوائي إلى الخادم: <br><i>inurl:fckeditor -intext:"ConfigIsEnabled = False" intext:ConfigIsEnabled</i><br></td> </tr></tbody></table><br>يركز Dorks في كثير من الأحيان على البحث عبر جميع مواقع الإنترنت. لكن لا شيء يمنعك من حصر نطاق البحث على أي موقع أو مواقع. <br>يمكن تركيز كل استعلام في Google على موقع معين عن طريق إضافة الكلمة الأساسية "site:somesite.com" إلى الاستعلام. يمكن إضافة هذه الكلمة الأساسية إلى أي أحمق. <p><b>أتمتة البحث عن نقاط الضعف</b><br>ومن هنا ولدت فكرة كتابة أداة مساعدة بسيطة تقوم بأتمتة عملية البحث عن الثغرات الأمنية باستخدام محرك بحث (google) وتعتمد على قاعدة بيانات Google Hack.</p><p>الأداة المساعدة عبارة عن برنامج نصي مكتوب في العقدة باستخدام phantomjs. على وجه الدقة، يتم تفسير النص بواسطة phantomjs نفسها. <br>Phantomjs هو متصفح ويب متكامل بدون واجهة مستخدم رسومية، ويتم التحكم فيه بواسطة كود js ومع واجهة برمجة تطبيقات ملائمة. <br>تلقت الأداة المساعدة اسمًا مفهومًا تمامًا - الحمقى. من خلال تشغيله على سطر الأوامر (بدون خيارات)، نحصل على مساعدة قصيرة مع عدة أمثلة للاستخدام: <br><br><img src='https://i0.wp.com/habrastorage.org/getpro/habr/post_images/edd/6fb/ccc/edd6fbccc5ec340abe750f3073c1b427.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 1 - قائمة خيارات دوركس الرئيسية</p><p>بناء الجملة العام للأداة هو: dork "command" "option list". <br>ويرد وصف تفصيلي لجميع الخيارات في الجدول 4.</p><p>الجدول 4 - بناء جملة دوركس <br></p><table border="1"><tbody><tr><td width="214"><b>فريق</b><br></td> <td width="214"><b>خيار</b><br></td> <td width="214"><b>وصف</b><br></td> </tr><tr><td rowspan="4" width="214">ghdb <br></td> <td width="214">-ل <br></td> <td width="214">اطبع قائمة مرقمة بفئات dork في قاعدة بيانات Google Hack <br></td> </tr><tr><td width="214">-ج "رقم الفئة أو الاسم" <br></td> <td width="214">تحميل أبواب الفئة المحددة حسب الرقم أو الاسم <br></td> </tr><tr><td width="214">-ف "عبارة" <br></td> <td width="214">تحميل dorks وجدت حسب الطلب <br></td> </tr><tr><td width="214">-أو "ملف" <br></td> <td width="214">احفظ النتيجة في ملف (فقط مع خيارات -c|-q) <br></td> </tr><tr><td rowspan="8" width="214">جوجل <br></td> <td width="214">-د "دورك" <br></td> <td width="214">قم بتعيين دورك عشوائيًا (يمكن استخدام الخيار عدة مرات، ويُسمح بالدمج مع الخيار -D) <br></td> </tr><tr><td width="214">-د "ملف" <br></td> <td width="214">استخدم dorks من الملف <br></td> </tr><tr><td width="214">-"الموقع" <br></td> <td width="214">ضبط الموقع (يمكن استخدام الخيار عدة مرات، ويُسمح بالدمج مع الخيار -S) <br></td> </tr><tr><td width="214">-S "ملف" <br></td> <td width="214">استخدام المواقع من ملف (سيتم البحث عن كل موقع بشكل مستقل) <br></td> </tr><tr><td width="214">-ف "التصفية" <br></td> <td width="214">قم بتعيين كلمات رئيسية إضافية (ستتم إضافتها إلى كل دورك) <br></td> </tr><tr><td width="214">-t "عدد مللي ثانية" <br></td> <td width="214">الفاصل الزمني بين طلبات جوجل <br></td> </tr><tr><td width="214">-T "عدد مللي ثانية" <br></td> <td width="214">المهلة إذا تمت مصادفة كلمة التحقق <br></td> </tr><tr><td width="214">-أو "ملف" <br></td> <td width="214">احفظ النتيجة في ملف (سيتم حفظ المسارات التي تم العثور على شيء لها فقط) <br></td> </tr></tbody></table><br>باستخدام الأمر ghdb، يمكنك الحصول على جميع الحمقى من استغلال-db عن طريق طلب عشوائي، أو تحديد الفئة بأكملها. إذا حددت الفئة 0، فسيتم إلغاء تحميل قاعدة البيانات بأكملها (حوالي 4.5 ألف حمقاء). <p>يتم عرض قائمة الفئات المتاحة حاليًا في الشكل 2. <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/b8f/b11/ffe/b8fb11ffeaced5066fd2fd9e43be67fb.jpg' width="100%" loading=lazy loading=lazy></p><p>الشكل 2 - قائمة فئات GHDB المتاحة</p><p>سيقوم فريق جوجل باستبدال كل دورك في محرك بحث جوجل وتحليل النتيجة بحثًا عن التطابقات. سيتم حفظ المسارات التي تم العثور على شيء ما فيها في ملف. <br>تدعم الأداة أوضاع البحث المختلفة: <br>1 دورك و 1 موقع؛ <br>1 دورك والعديد من المواقع؛ <br>موقع واحد والعديد من الحمقى. <br>العديد من المواقع والعديد من الحمقى. <br>يمكن تحديد قائمة الحمقى والمواقع إما من خلال وسيطة أو من خلال ملف.</p><p><b>مظاهرة العمل</b><br>دعنا نحاول البحث عن أي ثغرات أمنية باستخدام مثال البحث عن رسائل الخطأ. عن طريق الأمر: dorks ghdb –c 7 –o error.dorks سيتم تحميل جميع dorks المعروفة من فئة "رسائل الخطأ" كما هو موضح في الشكل 3. <br><br><img src='https://i0.wp.com/habrastorage.org/getpro/habr/post_images/28c/386/641/28c386641d1528652f7f8e8b8089097a.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 3 - تحميل كافة العناصر المعروفة في فئة "رسائل الخطأ".</p><p>يتم تنزيل Dorks وحفظها في ملف. الآن كل ما تبقى هو "تثبيتها" على بعض المواقع (انظر الشكل 4). <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/8e0/a8a/3af/8e0a8a3af4f26544da1faa584813dbff.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 4 - البحث عن نقاط الضعف في الموقع محل الاهتمام في ذاكرة التخزين المؤقت لـ Google</p><p>وبعد مرور بعض الوقت، يتم اكتشاف عدة صفحات تحتوي على أخطاء في الموقع قيد الدراسة (انظر الشكل 5).</p><p><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/10b/e83/ba3/10be83ba38f172213ba06b3f9ad05a58.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 5 - تم العثور على رسائل خطأ</p><p>نتيجة لذلك، في ملف result.txt، نحصل على قائمة كاملة بالأحمق الذي يؤدي إلى الخطأ. <br>ويبين الشكل 6 نتيجة البحث عن أخطاء الموقع. <br><br>الشكل 6 - خطأ في نتيجة البحث</p><p>تعرض ذاكرة التخزين المؤقت لهذا الأحمق تتبعًا خلفيًا كاملاً، مما يكشف عن المسارات المطلقة للنصوص البرمجية ونظام إدارة محتوى الموقع ونوع قاعدة البيانات (انظر الشكل 7). <br><br><img src='https://i1.wp.com/habrastorage.org/getpro/habr/post_images/0a9/455/588/0a9455588496d6609f5e13d598cb5a48.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 7 - الكشف عن معلومات حول تصميم الموقع</p><p>ومع ذلك، تجدر الإشارة إلى أنه ليس كل الأحمق من GHDB يعطي نتائج حقيقية. وأيضًا، قد لا يعثر Google على تطابق تام ويعرض نتيجة مماثلة.</p><p>في هذه الحالة، من الحكمة استخدام قائمة الأحمق الشخصية الخاصة بك. على سبيل المثال، من المفيد دائمًا البحث عن الملفات ذات الامتدادات "غير العادية"، والتي تظهر أمثلة عليها في الشكل 8. <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/d7f/865/693/d7f865693f7fcf13137598eeed0ecb58.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 8 - قائمة امتدادات الملفات غير النموذجية لمورد الويب العادي</p><p>ونتيجة لذلك، باستخدام الأمر dorks google –D Extensions.txt –fbank، تبدأ Google منذ الطلب الأول في إرجاع المواقع ذات امتدادات الملفات "غير العادية" (انظر الشكل 9). <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/107/e1f/a2f/107e1fa2f41c4169bcc254cba2f2f4b6.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 9 - البحث عن أنواع الملفات "السيئة" على المواقع المصرفية</p><p>تجدر الإشارة إلى أن Google لا يقبل طلبات بحث أطول من 32 كلمة.</p><p>باستخدام الأمر dorks google –d intext:”خطأ|تحذير|إشعار|بناء الجملة” –f الجامعة <br>يمكنك البحث عن أخطاء مترجم PHP على المواقع التعليمية (انظر الشكل 10). <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/717/74f/e36/71774fe3656bfc058c42d43262fdec4a.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 10 - العثور على أخطاء وقت تشغيل PHP</p><p>في بعض الأحيان ليس من المناسب استخدام فئة أو فئتين من الحمقى. <br>على سبيل المثال، إذا كان من المعروف أن الموقع يعمل على محرك Wordpress، فنحن بحاجة إلى وحدات خاصة بـ WordPress. في هذه الحالة، من الملائم استخدام بحث Google Hack Database. سيقوم الأمر dorks ghdb –q wordpress –o wordpress_dorks.txt بتنزيل جميع dorks من Wordpress، كما هو موضح في الشكل 11: <br><br><img src='https://i0.wp.com/habrastorage.org/getpro/habr/post_images/dcb/ac9/a4e/dcbac9a4eb12f6ec775d9cccc2fdee87.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 11 - ابحث عن Dorks المتعلقة بـ Wordpress</p><p>دعنا نعود إلى البنوك مرة أخرى ونستخدم الأمر dorks google –D wordpress_dords.txt –f Bank لمحاولة العثور على شيء مثير للاهتمام يتعلق بـ Wordpress (انظر الشكل 12). <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/042/0c2/c43/0420c2c435931704288b171f725ccc6a.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 12 - البحث عن نقاط الضعف في WordPress</p><p>ومن الجدير بالذكر أن البحث في قاعدة بيانات Google Hack لا يقبل الكلمات التي يقل طولها عن 4 أحرف. على سبيل المثال، إذا كان نظام إدارة المحتوى الخاص بالموقع غير معروف، ولكن اللغة معروفة - PHP. في هذه الحالة، يمكنك تصفية ما تحتاجه يدويًا باستخدام الأنبوب وأداة البحث في النظام dorks –c all | findstr /I php > php_dorks.txt (انظر الشكل 13): <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/4c1/2f8/6e1/4c12f86e111074293c14d6a939c6ebab.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 13 – ابحث في جميع المواقع التي تم ذكر PHP فيها</p><p>يجب أن يتم البحث عن نقاط الضعف أو بعض المعلومات الحساسة في محرك البحث فقط في حالة وجود فهرس مهم على هذا الموقع. على سبيل المثال، إذا كان الموقع يحتوي على 10-15 صفحة مفهرسة، فمن الغباء البحث عن أي شيء بهذه الطريقة. يعد التحقق من حجم الفهرس أمرًا سهلاً - ما عليك سوى إدخال "site:somesite.com" في شريط بحث Google. يظهر مثال لموقع به فهرس غير كافٍ في الشكل 14. <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/78e/1db/b4f/78e1dbb4fc78cd422cec311fc2ca9d33.jpg' width="100%" loading=lazy loading=lazy><br>الشكل 14 - التحقق من حجم فهرس الموقع</p><p>الآن بخصوص الأشياء غير السارة... من وقت لآخر، قد تطلب Google كلمة التحقق - لا يمكنك فعل أي شيء حيال ذلك - سيتعين عليك إدخالها. على سبيل المثال، عند البحث في فئة "رسائل الخطأ" (90 غبيًا)، ظهر رمز التحقق مرة واحدة فقط.</p><p>تجدر الإشارة إلى أن phantomjs يدعم أيضًا العمل من خلال وكيل، عبر واجهة http وSocks. لتمكين وضع الوكيل، تحتاج إلى إلغاء التعليق على السطر المقابل في dorks.bat أو dorks.sh.</p><p>الأداة متاحة كرمز مصدر</p> <p>هنا نبدأ بملف "إعدادات" بسيط، يسمى settings.asp. سيتم تضمين هذا الملف في كل صفحة، وسيحتوي على الإعدادات الأساسية لسجل الزوار هذا.</p> <p>نظرًا لأن كلمة المرور (رمز تسجيل الدخول) غير موجودة في قاعدة البيانات، فيمكنك ترك قاعدة البيانات في webroot باستخدام عبارة Mappath لتسهيل عملية التثبيت. ومع ذلك، فإن أفضل مكان لقاعدة البيانات هو خارج webroot الخاص بك، وفي هذه الحالة قد ترغب في تغيير سلسلة مسار قاعدة البيانات إلى المسار الكامل ("C:\inetpub\database\post.mdb" على سبيل المثال)</p> <p>هناك أيضًا إعدادات مهمة للسماح بـ html أم لا. في كثير من الأحيان، يسيء الأشخاص استخدام سجل الزوار عن طريق ملئه بالروابط وغيرها من الأشياء غير المرغوب فيها. سيكون من الجيد عدم السماح بـ html، إلا إذا كنت في حاجة إليه حقًا.</p> <p>إعداد اللغة هو مجرد مجموعة من المتغيرات للنص المستخدم داخل النظام، ولكل لغة يوجد نص مختلف يتم استخدامه. من السهل جدًا إضافة لغة "جديدة" إلى النظام.</p> <h2>تفاصيل</h2> <p>تسجيل الدخول عبارة عن صفحة فحص تسجيل دخول بسيطة، والتي تتحقق من رمز تسجيل الدخول الذي تم إدخاله في النموذج <br>مع تلك المخزنة في ملف settings.asp.</p>" عنوان سجل الزوار الخاص بك.pagetitle = " Demo" " language " !} <span>الإنجليزية = en، الألمانية = ger، الفرنسية = fr</span> lang = " en" " كلمة مرور المسؤول رمز تسجيل الدخول = " 1234" " عدد الإدخالات المراد إظهارها. show_posts = "25" <span>الحد الأدنى لطول المنشور المسموح به.</span>الحد الأدنى_للطول = 4" <span>اضبط على "لا" لعدم وجود html، واضبط على "نعم" للسماح بـ html (غير مستحسن!)</span> allow_html = "لا" " <span>اتركها كما هي، إلا إذا كنت تريد نقل قاعدة البيانات الخاصة بك.</span> data_path = الخادم .MapPath("post.mdb" )<%Option Explicit %> <!--<span class=" code-comment" > #INCLUDE FILE=" settings.asp" --></ span > <% if Request .Form(" mynumber" ) = " " then response .redirect(" login.asp?l=password_blank" ) End If " set variables from form FormPwd = Request .Form(" mynumber" ) FormPwd = replace (FormPwd," "" ," """ ) " <span>قم بتشغيل تسجيل الدخول أو العودة إلى صفحة تسجيل الدخول</span>إذا كان formpwd = رمز تسجيل الدخول، فعندئذٍ جلسة ("LoginID" ) = استجابة formpwd أخرى .redirect(" <span>تسجيل الدخول.asp?l=incorrect_login_or_password"</span>) ينتهي إذا " استجابة إعادة التوجيه النهائية .redirect(" post.asp" ) %> <p>يستخدم تسجيل الدخول متغيرات الجلسة لتخزين معلومات تسجيل الدخول، لذا لتسجيل الخروج فإننا ببساطة نتخلى عن الجلسة. تقوم عملية إعادة التوجيه بإلحاق التاريخ لتجنب رؤية صفحة تسجيل الدخول "المخزنة مؤقتًا" بعد تسجيل الخروج. هذه ليست مسألة أمنية، ولكن فقط للراحة.</p><p> <% session.abandon response .redirect(" post.asp?d=" & date ) %> </p><p>الآن الرمز الرئيسي هو صفحة post.asp، وهذه الصفحة هي نفسها سواء قمت بتسجيل الدخول كمسؤول أو مجرد ضيف يزور الصفحة. إذا قمت بتسجيل الدخول، فإنك ترى نفس البيانات كضيف، فقط لديك المزيد من الخيارات المتاحة، يمكنك حذف المشاركات، أو استعادة المشاركات المحذوفة، أو إفراغ "سلة المحذوفات" (حيث يتم تخزين المشاركات المحذوفة حتى تقوم بإزالتها) .</p> <p><img src='https://i0.wp.com/codeproject.com/KB/asp/asp-guestbook/guestbook.jpg' width="100%" loading=lazy loading=lazy></p> <p>كما ترون من الكود أدناه، فإننا نتحقق من جلسة تسجيل الدخول منذ البداية، <br>ثم يمكننا استخدام هذا خلال بقية البرنامج النصي لعرض البيانات بناءً على حالتك كمسؤول أو ضيف.</p><p> <% option explicit %> <head> <!--<span class=" code-comment" > #INCLUDE FILE=" settings.asp" --></ span > <% LoggedIn = Session(" loginID" ) </p><p>بمجرد تسجيل الدخول، ترى المزيد من الخيارات المتاحة.</p> <p><img src='https://i0.wp.com/codeproject.com/KB/asp/asp-guestbook/admin-deleted.jpg' width="100%" loading=lazy loading=lazy></p> <p>يتم تقسيم الملف إلى "أجزاء" اعتمادًا على سلسلة الاستعلام التي تم تمريرها.</p> <p>يتحقق القسم أدناه لمعرفة ما إذا كنت قد قمت بتسجيل الدخول أم لا، ثم تحقق لمعرفة ما إذا كنت قد قمت بتسجيل الدخول أم لا <br>لقد حاولت إفراغ العناصر "المحذوفة" من قاعدة البيانات.</p> " <span>==============================إفراغ العناصر المحذوفة من قاعدة البيانات</span>إذا قمت بتسجيل الدخول<>" " ثم إذا كان الطلب .querystring(" del" ) = 1، فسيتم تعيين dConn = Server .CreateObject (" ADODB.Connection" ) dConn.Open " & _data_path mySQL = " <span>احذف من tblpost حيث نشط = 2؛"</span> dConn.execute(mySQL) dconn. Close set dconn = لا شيء استجابة .redirect("post.asp" ) end if end if <p>كما ترون من بقية رمز "النشر" الرئيسي، يتم عرض عناصر مختلفة أو تنفيذ إجراءات بناءً على تسجيل الدخول أم لا، وإذا كان الأمر كذلك، فما هي قيمة سلسلة الاستعلام التي قمت بتمريرها إلى الصفحة.</p> " <span>==================================================================================</span>إذا قمت بتسجيل الدخول<>" " ثم showdeleted = request .querystring(" showdeleted" ) إذا showdeleted = 1 ثم نشط = 2 Removetype = 1delete_text = undelete_text delimage = "undelete.gif" else active = 1 Removetype = 2delete_text =delete_text delimage = "delete.gif "النهاية إذا كانت نشطة = نهاية واحدة إذا" <span>============حذف/إلغاء حذف العناصر من عرض سجل الزوار============</span>إزالة = طلب .querystring("إزالة") إذا إزالة = 1 ثم قم بتعيين dConn = Server .CreateObject ("ADODB.Connection" ) dConn.Open " <span>PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="</span>& قاعدة البيانات_مسار Removetype = request .querystring("removetype") mySQL = " UPDATE tblPost SET Active = " & Removetype & " WHERE ID = " & _ ID & " ;" استجابة .كتابة "تحديث" dConn.execute(mySQL) dConn.Close set dConn = لا شيء استجابة .redirect("post.asp" ) تنتهي إذا " <span>============إنهاء حذف القسم============</span>تعيين dataRS = Server .CreateObject ( " ADODB.RecordSet " ) dataSQL = " اختر TOP " & show_posts & " <span>رسالة، Remote_addr، سيسدات، "</span> &_ " <span>معرف النظام من tblPost حيث يكون نشطًا = "</span>&نشيط&_" <span>الطلب حسب sysdate DESC، systime DESC؛"</span>"Response.Write dataSQL" Response.end Set dConn = Server.CreateObject("ADODB.Connection") dConn.Open" <span>PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="</span>& قاعدة بيانات مسار البياناتRS.Open dataSQL، dConn، 1، 3 عدد السجلات = dataRS.recordcount إذا كان عدد السجلات > 0 ثم البيانات = dataRS.GetRows() " <span>يتم استرداد البيانات بحيث يتم إغلاق كافة الاتصالات</span> dataRS.Close Set dataRS = لا شيء dconn. Close set dconn = لا شيء " الإعداد لاستخدام المصفوفة iRecFirst = LBound (بيانات، 2 ) iRecLast = UBound (بيانات، 2 ) ينتهي إذا " <span>===============================================================================</span> message = Trim (request .form(" message")) if request .form(" ispostback" ) = 1 AND (len (message) > minor_length) ثم إذاallow_html = "لا" ثم الرسالة = RemoveHTMLtags(message) else message = ينتهي PreSubmit2(message) إذا strSQL = " tblPost" " فتح مجموعة سجلات Set cRS2 = Server .CreateObject (" ADODB.recordset") Set dConn = Server .CreateObject (" ADODB.Connection " ) dConn.Open " <span>PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="</span>&_ مسار قاعدة البيانات cRS2.Open strSQL, dConn, 1 ,3 cRS2.AddNew cRS2(" message" ) = الرسالة cRS2(" sysdate" ) = date () cRS2(" systime" ) = الوقت () cRS2(" Remote_addr" ) = طلب .ServerVariables(" Remote_addr" ) cRS2(" Active" ) = 1 cRS2.Update cRS2.Close Set cRS2 = لا شيء dConn.Close Set dConn = لا شيء استجابة .redirect(" post.asp" ) end if " <span>============نهاية قسم إعادة النشر============</span> %> <title><%=pagetitle%> </ title > </ head > <P style=" FONT-WEIGHT: bold" ><%=pagetitle%> <table border=2 bordercolor=" silver" CELLSPACING=0 CELLPADDING=4> <form action=" post.asp" method=" post" name=" form1" id=" form1" > <tr class=" smalltext"> <td><textarea cols=" 50" rows=" 4" name=" message" style=" <span>عائلة الخطوط: Arial، Helvetica، sans-serif؛"</span>فئة = "cssborder" عنوان = "<%=add_text%>!}" ></ textarea > </ td > <td nowrap><input type=" submit" value="<%=add_text%>" style=" height: 50px;" class=" cssborder" >!}</ td > </ tr > <input type=" hidden" name=" ispostback" value=" 1" > </ form > </ table > <% if recordcount >0 ثم %> <table border=" 2" cellspacing=" 0" cellpadding=" 4" bordercolor=" silver" width=" 500" > <tr> <th><%= message_text %> </ th > <% If LoggedIn <>" " ثم %> <th><%= delete_text %> </ th > <% end if %> </ tr > <% " <span>قم بالتكرار عبر السجلات (البعد الثاني للمصفوفة)</span>بالنسبة لـ I = iRecFirst إلى استجابة iRecLast .اكتب " <tr class="smalltext">" & _ " <td colspan="top">" & data(0 , I) & " [" & data(3 , I) & " | " & البيانات (2 , أنا) & " | " & البيانات (1، أنا) & " ]</td>"إذا قمت بتسجيل الدخول<>" " ثم الرد . الكتابة " <span><td nowrap valign="top" align="center">" </span>الرد.اكتب" <img src='https://zistons.ru/wp-content/uploads/2024/01/" %20&%20delimage%20&%20' loading=lazy loading=lazy></td>"النهاية إذا التالي" أنا %></ table > <% end if If LoggedIn <>" " ثم قم بالرد. اكتب رابط تسجيل الخروج آخر استجابة. اكتب نهاية رابط تسجيل الدخول إذا "أغلق قاعدة البيانات فقط في حالة استئناف الخطأ التالي dConn.Close Set dConn = لا شيء على الخطأ انتقل إلى 0 %> <p>هذا هو الأمر في الأساس، إنه سجل ضيوف صغير وبسيط للغاية، ومن السهل إضافته إلى موقع يدعم اتصالات قاعدة بيانات ASP وMS Access (لا يلزم وجود ODBC).</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> <p> </p> <p>قد يكون من المفيد أن تقرأ:</p> <ul> <li><a href="https://zistons.ru/ar/kak-polnostyu-udalit-360-safety-guard-ochistka-ot-failov-prilozheniya.html">تنظيف ملفات التطبيق</a>;</li> <li><a href="https://zistons.ru/ar/sposoby-organizacii-mediateki-v-programme-iphoto-podrobnyi-obzor-foto-dlya-mac.html">مراجعة متعمقة لتطبيق Photos for Mac - كل ما تحتاج لمعرفته حول استبدال iPhoto وAperture</a>;</li> <li><a href="https://zistons.ru/ar/emulyator-cd-cheindzhera-dlya-magnitol-audi-na-mk-attiny13-emulyator-cd-cheindzhera.html">محاكي مبدل الأقراص المضغوطة - هل يمكنك صنعه بنفسك؟</a>;</li> <li><a href="https://zistons.ru/ar/kak-pomenyat-vkontakte-familiyu-na-angliiskuyu-kak-mozhno-pomenyat-familiyu-v.html">كيف يمكنني تغيير اسمي الأخير في جهة اتصال؟</a>;</li> <li><a href="https://zistons.ru/ar/chto-takoe-tranzakciya-legkii-platezh-otklyuchaem-uslugu.html">تعطيل خدمة "الدفع السهل" من MTS</a>;</li> <li><a href="https://zistons.ru/ar/kak-sdelat-opros-v-telegramme-v-chate-kak-sozdat-i-dlya-chego-ispolzovat-sozdanie-oprosov-v-teleg.html">إنشاء استطلاعات الرأي في Telegram كيفية الإعجاب في Telegram</a>;</li> <li><a href="https://zistons.ru/ar/v-kakih-kitaiskih-smartfonah-luchshaya-kamera-vedushchii-inzhener-po-kamere-sony-xperia-o.html">مهندس كاميرا رئيسي لشركة Sony Xperia فيما يتعلق بتطوير التصوير الفوتوغرافي بالهاتف المحمول وتقنيات Sony والمستقبل</a>;</li> <li><a href="https://zistons.ru/ar/kak-sohranit-igru-na-plei-igry-kak-perenesti-sohraneniya-mobilnyh.html">كيفية نقل الألعاب المحفوظة على الهاتف المحمول إلى جهاز آخر؟</a>;</li> </ul> <p> </p> <p> <center> </center> </p> </div> </article> </main> <div style="clear: both;"></div> </div> </div> <div id="secondary-left" class="secondary widget-area col-xs-12 col-sm-4 col-md-3 col-lg-3 pull-left" role="complementary"> <div class="block-secondary inner-menu"> <aside id="dc_jqaccordion_widget-4" class="widget "> <div class="dcjq-accordion" id="dc_jqaccordion_widget-4-item"> <ul id="menu-informaciya-dlya-perevozchika-rus" class="menu"> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/smart-tv/">تلفزيون ذكي</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/windows/">شبابيك</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/antiviruses/">مضادات الفيروسات</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/security/">أمان</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/recovery/">استعادة</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/data/">بيانات</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/internet/">إنترنت</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/computers/">أجهزة الكمبيوتر</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/mobile-devices/">أجهزة محمولة</a></li> <li id="menu-item-" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-"><a href="https://zistons.ru/ar/category/setting/">إعدادات</a></li> </ul> </div> </aside> <aside id="text-11" class="widget widget_text"> <div class="h1 widget-title">مقالات جديدة</div> <div class="textwidget"> <ul> <li><a href="https://zistons.ru/ar/kak-redaktirovat-informaciyu-vk-kak-poddelat-perepisku-vkontakte-i-v-drugih.html">كيفية تزييف المراسلات على فكونتاكتي والشبكات الاجتماعية الأخرى؟</a></li> <li><a href="https://zistons.ru/ar/upravlyat-s-klaviatury-bez-myshki-upravlenie-kompyuterom.html">التحكم في جهاز كمبيوتر بدون ماوس، في نظام التشغيل Windows XP</a></li> <li><a href="https://zistons.ru/ar/chto-delat-vyskakivaet-prekrashchena-rabota-programmy.html">إصلاح الخطأ "توقف BSvcProcessor عن العمل"</a></li> <li><a href="https://zistons.ru/ar/kak-udalit-skaip-s-kompyutera-i-chto-delat-esli-on-ne-udalyaetsya-polnostyu.html">قم بإزالة Skype بالكامل من جهاز الكمبيوتر الخاص بك كيفية إزالة Skype بالكامل من جهاز الكمبيوتر الخاص بك</a></li> <li><a href="https://zistons.ru/ar/konvertiruem-izobrazheniya-png-v-ico-konvertiruem-izobrazheniya-png-v-ico-kak-iz-jpeg.html">تحويل صور PNG إلى ICO كيفية عمل ico من jpeg</a></li> <li><a href="https://zistons.ru/ar/televizory-na-kvantovyh-tochkah-v-chem-preimushchestva-televizor.html">تلفزيون بلازما، LCD، LCD، LED، OLED، نقاط الكم</a></li> <li><a href="https://zistons.ru/ar/v-avtomaticheskom-rezhime-bez-uchastiya-avtomaticheskie-zaimy-na-kartu.html">القروض التلقائية للبطاقة دون تدخل بشري</a></li> <li><a href="https://zistons.ru/ar/kak-podklyuchit-noutbuk-kompyuter-k-internetu-po-wi-fi-problemy-s.html">مشاكل في الاتصال بالواي فاي</a></li> <li><a href="https://zistons.ru/ar/openwith-enhanced-uluchshaem-menyu-otkryt-s-pomoshchyu-kak-zadat-programmu-po.html">كيفية ضبط البرنامج الافتراضي لفتح نوع معين من الملفات في الويندوز!</a></li> <li><a href="https://zistons.ru/ar/kogda-perestali-podderzhivat-windows-xp-chto-takoe-zhiznennyi-cikl-windows-ili-pochemu.html">ما هي دورة حياة Windows أو لماذا ينتهي الدعم؟</a></li> </ul> </div> </aside> <aside id="text-11" class="widget widget_text"> </aside> </div> </div> </div> <div style="clear: both;"></div> </div> </div> <footer id="colophon" class="site-footer" role="contentinfo"> <div class="container"> <div id="footer-sidebar" class="row"> <div class="footer-column col-xs-12 col-sm-3 col-md-3 col-lg-3"> <aside id="text-14" class="widget widget_text"> <div class="textwidget">2024 zistons.ru <br>مجلة الكمبيوتر - Zistons</div> </aside> </div> <div style="clear: both;"></div> </div> </div> </footer> </div> <script type="text/javascript"> jQuery(document).ready(function($) { jQuery('#dc_jqaccordion_widget-2-item .menu').dcAccordion({ eventType: 'click', hoverDelay: 0, menuClose: false, autoClose: true, saveState: false, autoExpand: true, classExpand: 'current-menu-item', classDisable: '', showCount: false, disableLink: true, cookie: 'dc_jqaccordion_widget-2', speed: 'normal' } ); } ); </script> <script type="text/javascript"> jQuery(document).ready(function($) { jQuery('#dc_jqaccordion_widget-3-item .menu').dcAccordion({ eventType: 'click', hoverDelay: 0, menuClose: false, autoClose: true, saveState: false, autoExpand: true, classExpand: 'current-menu-item', classDisable: '', showCount: false, disableLink: true, cookie: 'dc_jqaccordion_widget-3', speed: 'normal' } ); } ); </script> <script type="text/javascript"> jQuery(document).ready(function($) { jQuery('#dc_jqaccordion_widget-4-item .menu').dcAccordion({ eventType: 'click', hoverDelay: 0, menuClose: false, autoClose: true, saveState: false, autoExpand: true, classExpand: 'current-menu-item', classDisable: '', showCount: false, disableLink: true, cookie: 'dc_jqaccordion_widget-4', speed: 'normal' } ); } ); </script> <script type="text/javascript"> jQuery(document).ready(function($) { jQuery('#dc_jqaccordion_widget-5-item .menu').dcAccordion({ eventType: 'click', hoverDelay: 0, menuClose: false, autoClose: true, saveState: false, autoExpand: true, classExpand: 'current-menu-item', classDisable: '', showCount: false, disableLink: true, cookie: 'dc_jqaccordion_widget-5', speed: 'normal' } ); } ); </script> <script type="text/javascript"> jQuery(document).ready(function($) { jQuery('#dc_jqaccordion_widget-6-item .menu').dcAccordion({ eventType: 'click', hoverDelay: 0, menuClose: false, autoClose: true, saveState: false, autoExpand: true, classExpand: 'current-menu-item', classDisable: '', showCount: false, disableLink: true, cookie: 'dc_jqaccordion_widget-6', speed: 'normal' } ); } ); </script> <script type="text/javascript"> jQuery(document).ready(function($){ $("a[rel*=lightbox]").colorbox({ initialWidth:"30%",initialHeight:"30%",maxWidth:"90%",maxHeight:"90%",opacity:0.8} ); } ); </script> <script type='text/javascript' src='https://zistons.ru/wp-content/themes/inkness/js/navigation.js?ver=20120206'></script> <script type='text/javascript' src='https://zistons.ru/wp-content/themes/inkness/js/skip-link-focus-fix.js?ver=20130115'></script> <script type='text/javascript' src='https://zistons.ru/wp-content/plugins/lightbox-plus/js/jquery.colorbox.1.5.9-min.js?ver=1.5.9'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.4.13'></script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>