Баба inurl sign guestbook asp. Пошук слів за допомогою додаткових операторів

Будь-який пошук уразливостей на веб-ресурсах починається з розвідки та збору інформації.
Розвідка може бути як активною – брутфорс файлів та директорій сайту, запуск сканерів уразливостей, ручний перегляд сайту, так і пасивною – пошук інформації у різних пошукових системах. Іноді буває так, що вразливість стає відомою ще до відкриття першої сторінки сайту.

Як таке можливо?
Пошукові роботи, які безперервно блукають просторами інтернету, крім інформації, корисної звичайному користувачеві, часто фіксують те, що може бути використане зловмисниками при атаці на веб-ресурс. Наприклад, помилки скриптів та файли з чутливою інформацією (починаючи від конфігураційних файлів та логів, закінчуючи файлами з автентифікаційними даними та бекапами баз даних).
З погляду пошукового робота повідомлення про помилку виконання SQL-запиту - це звичайний текст, невіддільний, наприклад, від опису товарів на сторінці. Якщо раптом пошуковий робот наткнувся на файл з розширенням.sql, який чомусь опинився в робочій папці сайту, то він буде сприйнятий як частина вмісту сайту і так само буде проіндексовано (включаючи, можливо, вказані паролі).

Подібну інформацію можна знайти, знаючи стійкі, часто унікальні ключові слова, які допомагають відокремити «вразливі сторінки» від сторінок, що не містять вразливості.
Величезна база спеціальних запитів із використанням ключових слів (так званих дорків) існує на exploit-db.com і відома під назвою Google Hack Database.

Чому Google?
Дорки орієнтовані в першу чергу на google з двох причин:
− найбільш гнучкий синтаксис ключових слів (наведено в Таблиці 1) та спеціальних символів (наведено в Таблиці 2);
− індекс google все ж таки більш повний ніж у інших пошукових систем;

Таблиця 1 – Основні ключові слова google

Ключове слово
Сенс
приклад
site
Пошук лише на вказаному сайті. Враховує лише url
site:somesite.ru - знайде всі сторінки по даному домену та піддоменам
inurl
Пошук за словами, присутнім у uri. На відміну від кл. слова "site", шукає збіги після імені сайту
inurl:news - знайде всі сторінки, де в uri зустрінеться це слово
intext
Пошук у тілі сторінки
intext:"пробки" - повністю аналогічно звичайному запиту "пробки"
intitle
Пошук у заголовку сторінки. Текст, укладений між тегами <br></td> <td width="214">intitle:"index of" - знайде всі сторінки з лістингом директорії <br></td> </tr><tr><td width="214">ext <br></td> <td width="214">Пошук сторінок із зазначеним розширенням <br></td> <td width="214">ext:pdf - знайде всі PDF-файли <br></td> </tr><tr><td width="214">filetype <br></td> <td width="214">В даний час повністю аналогічно кл. слову “ext” <br></td> <td width="214">filetype:pdf - аналогічно <br></td> </tr><tr><td width="214">related <br></td> <td width="214">Пошук сайтів зі схожою тематикою <br></td> <td width="214">related:google.ru - покаже свої аналоги <br></td> </tr><tr><td width="214">link <br></td> <td width="214">Пошук сайтів, що посилаються на даний <br></td> <td width="214">link:somesite.ru - знайде всі сайти, на яких є посилання на даний <br></td> </tr><tr><td width="214">define <br></td> <td width="214">Показати визначення слова <br></td> <td width="214">define:0day - визначення терміна <br></td> </tr><tr><td width="214">cache <br></td> <td width="214">Показати вміст сторінки в кеші (якщо є) <br></td> <td width="214">cache: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 router configuration page» - пошук роутерів <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 - аналогічно до запиту index of <br></td> </tr><tr><td width="214">-<br></td> <td width="214">Виключити слово <br></td> <td width="214">error -warning - показати всі сторінки, де є error, але немає warning <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">linux | windows - показати сторінки, де зустрічається або перше або друге слово <br></td> </tr></tbody></table><br>Варто розуміти, що будь-який запит до пошукової системи – це пошук лише за словами. <br>Марно шукати на сторінці мета-символи (лапки, дужки, знаки пунктуації тощо). Навіть пошук за точною фразою, вказаною в лапках, - це пошук за словами, з подальшим пошуком точного збігу вже в результатах. <p>Усі доріжки Google Hack Database розділені логічно на 14 категорій і представлені в таблиці 3. <br>Таблиця 3 – Категорії Google Hack Database <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">Footholds <br></td> <td width="190">Веб-шелли, публічні файлові менеджери <br></td> <td width="284">Знайти всі зламані сайти, де залиті перераховані вебшели: <br>(intitle:«phpshell» OR intitle:«c99shell» OR intitle:«r57shell» OR intitle:«PHP Shell » OR intitle:«phpRemoteView») `rwx` «uname» <br></td> </tr><tr><td width="168">Files containing usernames <br></td> <td width="190">Файли реєстру, файли конфігурації, логи, файли, що містять історію введених команд <br></td> <td width="284">Знайти всі файли реєстру, які містять інформацію про облікові записи: <br><i>filetype:reg reg +intext:«Internet account manager»</i><br></td> </tr><tr><td width="168">Sensitive Directories <br></td> <td width="190">Каталоги з різною інформацією (особисті документи, конфіги vpn, приховані репозиторії та ін.) <br></td> <td width="284">Знайти всі лістинги директорій, що містять файли, що відносяться до vpn: <br><i>"Config" intitle:"Index of" intext:vpn</i><br>Сайти, що містять git-репозиторії: <br><i>(intext: "index of /.git") ("parent directory")</i><br></td> </tr><tr><td width="168">Web Server Detection <br></td> <td width="190">Версію та іншу інформацію про веб-сервер <br></td> <td width="284">Знайти адміністративні консолі сервера JBoss: <br><i>inurl:"/web-console/" intitle:«Administration Console»</i><br></td> </tr><tr><td width="168">Vulnerable Files <br></td> <td width="190">Скрипти, що містять відомі вразливості <br></td> <td width="284">Знайти сайти, які використовують скрипт, що дозволяє вивантажити довільний файл із сервера: <br><i>allinurl:forcedownload.php?file=</i><br></td> </tr><tr><td width="168">Vulnerable Servers <br></td> <td width="190">Інсталяційні скрипти, веб-шелли, відкриті адміністративні консолі та ін. <br></td> <td width="284">Знайти відкриті PHPMyAdmin консолі, запущені від root: <br><i>intitle:phpMyAdmin "Welcome to phpMyAdmin ***" "running on * as root@*"</i><br></td> </tr><tr><td width="168">Error Messages <br></td> <td width="190">Різні помилки та попередження, що часто розкривають важливу інформацію - починаючи від версії CMS до паролів <br></td> <td width="284">Сайти, що мають помилки у виконанні SQL-запитів до бази: <br><i>"Warning: mysql_query()" "invalid query"</i><br></td> </tr><tr><td width="168">Files containing juicy info <br></td> <td width="190">Сертифікати, бекапи, електронні листи, логи, SQL-скрипти і т.д. <br></td> <td width="284">Знайти ініціалізаційні sql-скрипти: <br><i>filetype:sql та «insert into» -site:github.com</i><br></td> </tr><tr><td width="168">Files containing passwords <br></td> <td width="190">Все, що може містити паролі - логи, sql-скрипти і т.д. <br></td> <td width="284">Логи, що згадують паролі: <br><i>filetype:</i><i>log</i><i>intext:</i><i>password |</i><i>pass |</i><i>pw</i><br>sql-скрипти, що містять паролі: <br><i>ext:</i><i>sql</i><i>intext:</i><i>username</i><i>intext:</i><i>password</i><br></td> </tr><tr><td width="168">Sensitive Online Shopping Info <br></td> <td width="190">Інформація пов'язана з онлайн покупками <br></td> <td width="284">Знайти пінкоди: <br><i>dcid=</i><i>bn=</i><i>pin</i><i>code=</i><br></td> </tr><tr><td width="168">Network or vulnerability data <br></td> <td width="190">Інформацію, що не відноситься безпосередньо до веб-ресурсу, але що стосується мережі або інші не веб-сервіси <br></td> <td width="284">Знайти скрипти автоматичного налаштування проксі, що містять інформацію про внутрішню мережу: <br><i>inurl:прокси | inurl:wpad ext:pac | ext:dat findproxyforurl</i><br></td> </tr><tr><td width="168">Pages containing login portals <br></td> <td width="190">Сторінки, що містять форми входу <br></td> <td width="284">Веб-сторінки saplogon: <br><i>intext:«2016 SAP AG. All rights reserved.» intitle:«Logon»</i><br></td> </tr><tr><td width="168">Various Online Devices <br></td> <td width="190">Принтери, роутери, системи моніторингу та ін. <br></td> <td width="284">Знайти конфігураційну панель принтера: <br><i>intitle:"</i><i>hp</i><i>laserjet"</i><i>inurl:</i><i>SSI/</i><i>Auth/</i><i>set_</i><i>config_</i><i>deviceinfo.</i><i>htm</i><br></td> </tr><tr><td width="168">Advisories and Vulnerabilities <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>Дорки найчастіше орієнтовані на пошук по всіх сайтах мережі інтернет. Але ні що не заважає обмежити область пошуку на будь-якому веб-сайті або веб-сайтах. <br>Кожен запит до Google можна зосередити на певному сайті, додавши до запиту ключове слово "site:somesite.com". Дане ключове слово може бути дописане до будь-якого дорку. <p><b>Автоматизація пошуку вразливостей</b><br>Так народилася ідея написати просту утиліту, що автоматизує пошук вразливостей за допомогою пошукової системи (google) і спирається на Google Hack Database.</p><p>Утиліта являє собою скрипт, написаний на nodejs з використанням phantomjs. Якщо бути точним, то скрипт інтерпретується самим фантомом. <br>Phantomjs - це повноцінний веб-браузер без графічного інтерфейсу, що керується за допомогою js-коду і володіє зручним API. <br>Утиліта отримала цілком зрозумілу назву – dorks. Запустивши її в командному рядку (без опцій) отримуємо коротку довідку з кількома прикладами використання: <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/edd/6fb/ccc/edd6fbccc5ec340abe750f3073c1b427.jpg' width="100%" loading=lazy loading=lazy><br>Малюнок 1 - Список основних опцій dorks</p><p>Загальний синтаксис утиліти: dork команда список опцій. <br>Детальний опис усіх опцій наведено в таблиці 4.</p><p>Таблиця 4 – Синтаксис dorks <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">-l <br></td> <td width="214">Вивести нумерований список категорій дорків Google Hack Database <br></td> </tr><tr><td width="214">-c «номер або назва категорії» <br></td> <td width="214">Завантажити доріжки вказаної категорії за номером чи назвою <br></td> </tr><tr><td width="214">-q «фраза» <br></td> <td width="214">Завантажити дорки, знайдені за запитом <br></td> </tr><tr><td width="214">-o "файл" <br></td> <td width="214">Зберегти результат у файл (тільки разом із опціями -c|-q) <br></td> </tr><tr><td rowspan="8" width="214">google <br></td> <td width="214">-d «дорк» <br></td> <td width="214">Вказати довільний дорк (опція може використовуватися багато разів, допускається поєднання з опцією -D) <br></td> </tr><tr><td width="214">-D "файл" <br></td> <td width="214">Використовувати доріжки з файлу <br></td> </tr><tr><td width="214">-s «сайт» <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">-f "фільтр" <br></td> <td width="214">Задати додаткові ключові слова (буде додано до кожного дорка) <br></td> </tr><tr><td width="214">-t «кількість мс» <br></td> <td width="214">Інтервал між запитами до Google <br></td> </tr><tr><td width="214">-T «кількість мс» <br></td> <td width="214">Таймаут, якщо зустрілася каптча <br></td> </tr><tr><td width="214">-o "файл" <br></td> <td width="214">Зберегти результат у файл (будуть збережені лише ті доркі, за якими щось знайшлося) <br></td> </tr></tbody></table><br>За допомогою команди ghdb можна отримати всі доркі з exploit-db за довільним запитом, або вказати всю категорію. Якщо вказати категорію 0 - то буде вивантажено всю базу (близько 4.5 тисяч дорків). <p>Список категорій доступних на даний момент представлений малюнку 2. <br><br><img src='https://i0.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>Командою google буде проведена підстановка кожного доріка в пошуковик google і проаналізовано результат щодо збігів. Дорки за якими щось знайшлося будуть збережені у файл. <br>Утиліта підтримує різні режими пошуку: <br>1 дорк та 1 сайт; <br>1 дорк та багато сайтів; <br>1 сайт та багато дорків; <br>багато сайтів та багато дорків; <br>Список доріжок та сайтів можна задати як через аргумент, так і через файл.</p><p><b>Демонстрація роботи</b><br>Спробуємо пошукати будь-які вразливості на прикладі пошуку повідомлень про помилки. За командою: dorks ghdb –c 7 –o errors.dorks будуть завантажені всі відомі доркі категорії “Error Messages” як показано на малюнку 3. <br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/28c/386/641/28c386641d1528652f7f8e8b8089097a.jpg' width="100%" loading=lazy loading=lazy><br>Рисунок 3 – Завантаження всіх відомих дорків категорії “Error Messages”</p><p>Дорки завантажені та збережені у файл. Тепер залишається «натруїти» їх на якийсь сайт (див. рисунок 4). <br><br><img src='https://i1.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://i0.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://i0.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 –f банк, з першого запиту 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:”error|warning|notice|syntax” –f університет <br>можна знайти помилки інтерпретатора PHP на сайтах навчальної тематики (див. малюнок 10). <br><br><img src='https://i0.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 завантажить всі доркі по 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 – Пошук доріжок, що стосуються Wordpress</p><p>Знову повернемося до банків та командою dorks google –D wordpress_dords.txt –f банк спробуємо знайти щось цікаве, пов'язане з 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 Database не сприймає слова коротше 4 символів. Наприклад, якщо CMS сайту не відома, але відома мова – PHP. У такому разі можна відфільтрувати потрібне вручну за допомогою пайпа та системної утиліти пошуку dorks – c all | findstr /I php > php_dorks.txt (див. малюнок 13): <br><br><img src='https://i0.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 сторінок, то безглуздо щось шукати подібним чином. Перевірити розмір індексу просто – достатньо ввести в рядок пошуку google «site:somesite.com». Приклад сайту з недостатнім індексом показано на малюнку 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 може запросити каптчу - тут нічого не вдієш - її доведеться ввести. Наприклад, у мене, при переборі категорії «Error Messages» (90 дорків) каптча випала лише один раз.</p><p>Варто додати, що phantomjs підтримує роботу так само через проксі, як через http, так і через socks інтерфейс. Для включення режиму проксі треба розкоментувати відповідний рядок dorks.bat або dorks.sh.</p><p>Інструмент доступний у вигляді вихідного коду</p> <p>Recently я був працюючий на моїй веб-сторінці, і вирішив я хотів зробити guestbook. Я хотів би вивчити веб-доступ до кращого guestbook для мого веб-сайту, але якщо не турбується, я думаю, що 'Hey I'm a developer, why not create my own?'</p> <p>It was very easy to create guestbook — you can do it too. In this tutorial, I'll show you how. I'll assume те, що ви маєте широке знання про основи ASP.NET програмування, що ви знайдете технології, внесені в codebehind, і що ви маєте деякі XML/XSL skills.</p> <h5>Overview</h5> <p>What do we need in order to create a guestbook? Тут потрібні дві форми форми: один у якому користувачі можуть ввести їх назву, адресу електронної пошти, і коментарі, і інші, що використовуються для відтворення цих повідомлень, як вони signed в guestbook. З курсу ми можемо побудувати цю функціональність в одному Web form, але має чистий код, I'll використовувати два Web forms with several codebehind files (I'll discuss these in more detail in a moment).</p> <p>We'll also need a database to hold the information entered via the form. I used a simple XML file (a database) до store the information entered by the user. Для visualization of the XML we'll use XSL.</p> <p>So, in summary, we need the following:</p> <ul><li>Two Web forms</li><li>Codebehind</li><li>Database</li> </ul><p>In a guestbook, it's usually sufficient to store a user's name, location, email address, Website address, and comment. З плавання, ви можете переглянути більше полів, але для наших філіалів, вони є приємними. We'll store this data в XML файлі, which will look something like this:</p><p> <?xml version="1.0" encoding="ISO-8859-1"?> <br> <guestbook> <br> <guest> <br> <name>Sonu Kapoor</name> <br> <location>Німеччина</location> <br> <email>sonu@codefinger.de</email> <br> <website>www.codefinger.de</website> <br> <comment>Цей guestbook is written by Sonu Kapoor. <br>I hope you like it. Щоб дізнатися, як створити свій guestbook, <br>read the whole story на веб-сайті.</comment> <br> </guest> <br> </guestbook> </p><h5>Signing the Guestbook</h5> <p>We'll allow the user to 'sign' our guestbook натиснувши певні відомості в simple web form — в our example this is the guestbook.aspx file. I use the following fields в the Web form:</p> <ul><li>Location</li><li>Email</li><li>Website</li><li>Comment</li> </ul><p>Here’s the code:</p><p> <% @Page Language="C#" Debug="true" Src="Guestbook.cs" <br>Inherits="Guestbook" %> <br> <form runat="server"> <br> ... <br> ... <br> <ASP:Textbox id="name" size="64" runat="server"/> </p><p> <asp:RequiredFieldValidator id="nameRequired" runat="server" <br>ControlToValidate="name" <br>ErrorMessage="Ви повинні ввести значення в textbox1" <br>Display="dynamic">Enter name <br> </asp:RequiredFieldValidator> </p><p> <ASP:Textbox id="location" size="64" runat="server"/> </p><p> <asp:RequiredFieldValidator id="locationRequired" runat="server" <br>ControlToValidate="location" ErrorMessage="You must enter <br>a value into textbox1" Display="dynamic"> <br>Enter location</asp:RequiredFieldValidator> </p><p> <ASP:Textbox id="website" size="64" runat="server"/> <br> <ASP:Textbox id="email" size="64" runat="server"/> <br> <ASP:Textbox id="comment" TextMode="Multiline" <br>columns="50" rows="10" wrap="true" runat="server"/></p><p> <asp:RequiredFieldValidator id="commentRequired" runat="server" <br>ControlToValidate="comment" ErrorMessage="You must enter <br>a value into textbox1" Display="dynamic"> <br>Enter comment</asp:RequiredFieldValidator> </p><p> <ASP:Button id="submit" runat="server" Text="Submit" <br>OnClick="Save_Comment"/> <br> <ASP:Button id="reset" runat="server" Text="Reset"/> <br> ... <br>...doing some visualisation stuff <br> ... <br> </script> <br> </form> </p><p>To avoid confusing you with unnecessary code, I remove the visualisation tags — including table, table header etc. — від цього опису (якщо, на курсі, вони є всі включені в downloadable code that's provided at the end of this tutorial). Як ми тільки відтворюємо simple form with few fields and buttons, ви можете any any programming code in this file. Це є все, що функціональність є високим в коді.</p> <p>У першому рядку з code above, я встановлюю SRC atribut до літа ASP.NET file know that we are using the codebehind file Guestbook.cs I've also set the attribute Inherits with the corresponding classname. Це atribut lets the file know which class to inherit.</p> <p>Next, I've implemented the required text fields. Зверніть увагу, що якщо ви хочете використовувати ті ж самі параметри в codebehind, вони потрібні для того, щоб мати ті ж ID у всіх файлах, і вони повинні бути розглянуті як public.</p> <p>У наступному розділі коду, я використовує ASP.NET validator controls. Ці керування check whether the user has entered value in the text field, безперервно-розриву до the server. Code executed на client side.</p> <p>Зрештою, я implemented submit button with onClick event called Save_Comment . Це означає, що він використовується для збереження інформації, введеної в XML файл за допомогою користувача. Функція цього випадку є доступною в Guestbook.cs. I also implemented a reset button - and that's it! Nothing more has to be done to the Web form. Тепер, якщо ви збираєтеся guestbook.aspx, ви повинні бачити, що Web form that looks like this:</p> <p>Тепер ми знаємо, як відобразити веб-форму, але ми повинні повідомити про те, що handles the event in guestbooks.cs. Let’s take a look at that now.</p><p>Using System; <br>using System.Web; <br>using System.Web.UI; <br>використовуючи System.Xml;</p><p>Public class Guestbook: Page <br> { <br>// Create the required webcontrols with the same name as <br>in the guestbook.aspx file <br>public TextBox name; <br>public TextBox location; <br>public TextBox email; <br>public TextBox website; <br>public TextBox comment;</p><p>Public void Save_Comment(object sender, EventArgs e) <br> { <br>// Everything is all right, so let us save the data <br>into the XML файл <br>SaveXMLData();</p><p>// Remove the values ​​of the textboxes <br>name.Text=""; <br>location.Text=""; <br>website.Text=""; <br>email.Text=""; <br>comment.Text=""; <br> } <br> } </p><p>Private void SaveXMLData() <br> { <br>// Load the xml file <br>XmlDocument xmldoc = новий XmlDocument(); <br>xmldoc.Load(Server.MapPath("guestbook.xml"));</p><p>//Create a new guest element and add it to the root node <br>XmlElement parentNode = xmldoc.CreateElement("guest"); <br>xmldoc.DocumentElement.PrependChild(parentNode);</p><p>// Create the required nodes <br>XmlElement nameNode = xmldoc.CreateElement("name"); <br>XmlElement locationNode = xmldoc.CreateElement("location"); <br>XmlElement emailNode = xmldoc.CreateElement("email"); <br>XmlElement websiteNode = xmldoc.CreateElement("website"); <br>XmlElement commentNode = xmldoc.CreateElement("comment");</p><p>// retrieve the text <br>XmlText nameText = xmldoc.CreateTextNode(name.Text); <br>XmlText locationText = xmldoc.CreateTextNode(location.Text); <br>XmlText emailText = xmldoc.CreateTextNode(email.Text); <br>XmlText websiteText = xmldoc.CreateTextNode(website.Text); <br>XmlText commentText = xmldoc.CreateTextNode(comment.Text);</p><p>// append the nodes to the parentNode without the value <br>parentNode.AppendChild(nameNode); <br>parentNode.AppendChild(locationNode); <br>parentNode.AppendChild(emailNode); <br>parentNode.AppendChild(websiteNode); <br>parentNode.AppendChild(commentNode);</p><p>// Захищає цінність філії в nodes <br>nameNode.AppendChild(nameText); <br>locationNode.AppendChild(locationText); <br>emailNode.AppendChild(emailText); <br>websiteNode.AppendChild(websiteText); <br>commentNode.AppendChild(commentText);</p><p>// Save to the XML file <br>xmldoc.Save(Server.MapPath("guestbook.xml"));</p><p>// Display the user the signed guestbook <br>Response.Redirect("viewguestbook.aspx"); <br> } <br> } </p><p>Wow! That's our codebehind file… but what really happens here? You won't believe it, але answer is: "not much"!</p> <p>Перший, буде реалізувати мінімальні потрібні namespaces, які ми потребуємо в порядку, щоб використовувати кілька важливих функцій. Then I create a new class called Guestbook:</p> public class Guestbook: Page <p>Note that it's this class that's inherited by the guestbook.aspx file. Існують 5 public variables of type textbox. Remember that here, the names have to identical to those we used when we created the text boxes in guestbook.aspx. Там, як ви можете повідомити, будуть використовуватися Save_Comment Event, які є оголошено по кнопці submit, що буде включити в файл guestbookpx. Це означає, що використовується для збереження даних.</p> <h5>The Saving Process</h5> <p>Функція SaveXMLData() забезпечує інформацію для нас. Як ми використовуємо XML Database для отримання інформації, будуть використовувати XmlDocument , XmlElement and XmlText classes, які виконують всі функції, які потрібні.</p> <p>Далі, ми створили новий XMLDocument class об'єкта і load the guestbook.xml file. Потрібні nodes є створені з функцією CreateElement , і інформацією, введеною в User is retrieved and stored to object of XmlText . Далі, ми збираємо створені nodes без будь-яких цін, використовуючи функцію AppendChild in conjunction with the main XmlDocument object.</p> <p>І, наприкінці, ціни будуть збережені в шпильках, які створюються, ми збираємо всі зміни до файлу guestbook.xml, і ми оберіть сторінку на viewguestbook.aspx, де stored comment is displayed.</p> <h5>Viewing the Guestbook</h5> <p>Для того, щоб побачити guestbook, ми повинні створювати інші веб-форми:</p><p> <% @Page Language="C#" Debug="true" Src="ViewGuestbook.cs" <br>Inherits="ViewGuestbook" %></p><p>Як ви бачите, це Web form doesn’t really do all that much. Це simple calls the codebehind file, ViewGuestbook.cs. Let's take a look at this file.</p><p>Using System; <br>using System.Web; <br>using System.Web.UI; <br>using System.Web.UI.WebControls; <br>використовуючи System.Xml; <br>використовуючи System.Xml.Xsl; <br>using System.IO;</p><p>Public class ViewGuestbook: Page <br> { <br>private void Page_Load(object sender, System.EventArgs e) <br> { <br>//Load the XML file <br>XmlDocument doc = новий XmlDocument(); <br>doc.Load(Server.MapPath("guestbook.xml"));</p><p>//Load the XSL file <br>XslTransform xslt = New XslTransform(); <br>xslt.Load(Server.MapPath("guestbook.xsl"));</p><p>String xmlQuery="//guestbook"; <br>XmlNodeList nodeList=doc.Document <br>Element.SelectNodes(xmlQuery);</p><p>MemoryStream ms=new MemoryStream(); <br>xslt.Transform(doc, null, ms); <br>ms.Seek(0, SeekOrigin.Begin);</p><p>StreamReader sr = новий StreamReader(ms);</p><p>//Print out the result <br>Response.Write(sr.ReadToEnd()); <br> } <br> } </p><p>I’ve створено цю категорію для відтворення всіх коментарів, прокладених через guestbook до наших користувачів. У зв'язку з цим, перш ніж це буде реалізувати потрібні namespaces, і, як ми використовуємо XSL для visualization, ми повинні бути включені до namespace System.Xml.Xsl .</p> <p>Вони створюють новий клас названий ViewGuestbook , з private inbuilt функція називається Page_Load . Ця функція завжди називається при page loads, або при використанні користувачів, які змінюються. Тут, функції loads guestbook.xml файлу, і в XslTranform class використовується для перетворення XML елементів в HTML до wet loadt guestbook.xsl з help XslTransform object.</p> <p>Next, we create a new object of class XmlNodeList , який буде застосовано до вибраних необхідних nodes. Якщо ви використовуєте class MemoryStream , доступне за допомогою namespace System.IO , створіть stream, що має пам'яті як backing store, і використовує трансформаційну функцію, щоб визначити xml data to ця пам'ятка. функція секції включає в себе поточну позицію до 0.</p> <p>We then create an object of the class StreamReader , which reads the stream, і print the result with the help of the function ReadToEnd() . Ця функція reads the stream from the current position to the end. Якщо ви збираєтеся побачити guestbook.aspx, ви повинні дізнатися про Web form like this:</p> <p><img src='https://i2.wp.com/sitepointstatic.com/graphics/webform2.gif' width="100%" loading=lazy loading=lazy></p> <h5>The XSL</h5> <p>Як I’ve already mentioned, we use XSL для transformation of the data from XML to HTML. I've assumed that you're already experienced with XSLT, so I'll тільки touch на важливих аспектах. Я використовую XSL для кожного виходу до ітераті через всі guests в цій knihe, які висловлюють деякий час як це:</p><p> <xsl:for-each select="//guest"> <br> <xsl:apply-templates select="name"/> <br> </xsl:for-each> </p><p>And in loop we call the XSL template name, which looks something like this:</p><p> <xsl:template match="name"> <br> <xsl:value-of select="."/> <br> </xsl:template> </p><h5>Conclusion</h5> <p>As you see, it's не дуже difficult to create a guestbook. Good luck! And don't forget to.</p> <p>Тут ми start out with simple "settings" file, назви settings.asp. Цей файл буде включений на її сторінку, і буде містити основні настанови для цієї guestbook.</p> <p>Відповідь password (logincode) є NOT в 데이터베이스, ви можете записати database в webroot з mappath statement to make the install easier. Окрім того, найкраще місце для вашого database є поза вашим веб-сайтом, в якому випадку ви хочете, щоб змінити вашу database_path string to your full path ("C:\inetpub\database\post.mdb" for example)</p> <p>Там є також важливі налаштування до певного html, або не. Багато разів folks abuse guestbook by filling it with links, і інші джинси. Це буде добре, щоб хотіти, щоб розглянути html, unless you realne need it.</p> <p>Language setting is just a set variables for text used within the system, for each language there is different text that is used. Very easy to add a "new" language to the system.</p> <h2>Details</h2> <p>Login is a simple login check page, which checks login code Entered on the form <br>with the one stored in the settings.asp file.</p>" title of your guestbook. pagetitle = " Demo" " language " !} <span>english = en, german = ger, french = fr</span> lang = " en " " admin password logincode = " 1234" " number of entries to show. show_posts = "25" " <span>minimum length of post to be allowed.</span> minimum_length = 4" <span>натиснути на "не" для не html, натиснути "на" на повний html (no recommended!)</span> allow_html = "no" " <span>leave as is, unless you want to move your database.</span> database_path = Server .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>run login або return to login page</span> if formpwd = logincode then Session("LoginID" ) = formpwd else response .redirect(" <span>login.asp?l=incorrect_login_or_password"</span>) End if " final redirect response .redirect(" post.asp" ) %> <p>Login use session variables to store the login information, so to log off we simple abandon the sesion. Redirect appends date to avoid seeing "cached" login page after being logged out. Це не небезпека, але тільки для convenience.</p><p> <% session.abandon response .redirect(" post.asp?d=" & date ) %> </p><p>Новий основний код є post.asp page, this page is the same whether you are logged in as admin or just a guest visiting the page. Якщо ви збираєтеся в тому, щоб дати самі дані, як тільки, тільки ви маєте багато можливостей, які ви можете скористатися повідомленнями, або залишити видалені повідомлення, або empty the "recycle bin" (якщо вилучені повідомлення, щоб отримати until you clear them out) .</p> <p><img src='https://i1.wp.com/codeproject.com/KB/asp/asp-guestbook/guestbook.jpg' width="100%" loading=lazy loading=lazy></p> <p>Як ви можете повідомити від коду нижче, ми виконати loggedin session right from the start, <br>будуть ми можемо використовувати цей текст, щоб залишити script для відображення даних, що базуються на вашому статусі як admin або guest.</p><p> <% option explicit %> <head> <!--<span class=" code-comment" > #INCLUDE FILE=" settings.asp" --></ span > <% LoggedIn = Session(" loginID" ) </p><p>Once you are logged in you more options available.</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>File is split up in "parts" depending on what querystring passed.</p> <p>Section below checks to see if you are logged in and then check so see if <br>Ви маєте намір empty "розрізнених" елементів з Database.</p> " <span>============Empty Deleted Items from the database============</span> If LoggedIn<>" " Then if request .querystring(" del" ) = 1 then Set dConn = Server .CreateObject (" ADODB.Connection" ) dConn.Open " & _ database_path mySQL = " <span>DELETE FROM tblpost where active = 2;"</span> dConn.execute(mySQL) dconn.close set dconn = nothing response .redirect("post.asp" ) end if end if <p>Як ви можете повідомити про останній основний "post" код, різні елементи можуть бути розгорнуті або дії, що базуються на тому, що клацнули в або не, і якщо ви не збираєтесяstrings значення, що ви повинні пройти на сторінці.</p> " <span>============set based on delete or undelete============</span> If LoggedIn<>Then showdeleted = request .querystring(" showdeleted" ) if showdeleted = 1 then active = 2 removetype = 1 delete_text = undelete_text delimage = " undelete.gif" else active = 1 removetype = 2 delete_text = delete_text delimage = " delete.gif " end if else active = 1 end if " <span>============Delete/Undelete Items from the guestbook display============</span> remove = request .querystring(" remove" ) if remove = 1 then Set dConn = Server .CreateObject ("ADODB.Connection" ) dConn.Open " <span>PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="</span>& database_path removetype = request .querystring(" removetype" ) mySQL = " UPDATE tblPost SET Active = " & removetype & " WHERE ID = " & _ ID & " ;" response .write " updating" dConn.execute(mySQL) dConn.Close set dConn = Nothing response .redirect(" post.asp" ) end if " <span>============End Delete Section============</span> Set dataRS = Server .CreateObject ("ADODB.RecordSet") dataSQL = "Select TOP" & show_posts & " <span>message, remote_addr, sysdate, "</span> &_ " <span>systime, id FROM tblPost WHERE active = "</span>& active &_ " <span>order by 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>& database_path dataRS.Open dataSQL, dConn, 1 , 3 recordcount = dataRS.recordcount if recordcount > 0 then data = dataRS.GetRows() " <span>Data is retrieved so close all connections</span> dataRS.Close Set dataRS = Nothing dconn.close set dconn = nothing " Setup for array usage iRecFirst = LBound (data, 2 ) iRecLast = UBound (data, 2 ) end if " <span>============IF IS A POST BACK============</span> message = trim (request .form("message" )) if request .form(" ispostback" ) = 1 AND (len (message) > minimum_length) PreSubmit2(message) end if strSQL = "tblPost" "Open a recordset Set cRS2 = Server .CreateObject ("ADODB.recordset" ) Set dConn = Server .CreateObject ("ADODB.Connection" ) dConn.Open " <span>PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="</span>&_ database_path cRS2.Open strSQL, dConn, 1 ,3 cRS2.AddNew cRS2(" message" ) = message cRS2(" sysdate" ) = date() cRS2(" systime" ) = time () cRS2(" remote_addr" ) = request .ServerVariables(" remote_addr" ) cRS2(" Active" ) = 1 cRS2.Update cRS2.Close Set cRS2 = Nothing dConn.Close Set dConn = Nothing response .redirect(" post.asp" ) end if " <span>============End POSTBACK Section============</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>font-family: Arial, Helvetica, sans-serif;</span> class="cssborder" title="<%=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 then %> <table border=" 2" cellspacing=" 0" cellpadding=" 4" bordercolor=" silver" width=" 500" > <tr> <th><%= message_text %> </ th > <% If LoggedIn <>" " then %> <th><%= delete_text %> </ th > <% end if %> </ tr > <% " <span>Loop through the records (second dimension of the array)</span> For I = iRecFirst To iRecLast Response .Write " <tr class="smalltext">" & _ " <td colspan="top">" & data(0 , I) & " [" & data(3 ,I) & " | " & data(2 , I) & " | " & data(1 , I) & " ]</td>" if LoggedIn<>" " then response .write " <span><td nowrap valign="top" align="center">" </span> response .write " <img src='/uploads/" %20&%20delimage%20&%20' loading=lazy loading=lazy></td>" end if Next " I %></ table > <% end if If LoggedIn <>"" Then response. <p>Це є basically it, це є дуже простий короткий guestbook, що повинен бути легко додати до мережі, що supports ASP and MS Access database connections (No ODBC is necesary).</p> <p><i>Пошукова система Google (www.google.com) надає багато можливостей для пошуку. Всі ці можливості - неоціненний інструмент пошуку для користувача вперше потрапив в Інтернет і в той же час ще потужніша зброя вторгнення і руйнування в руках людей зі злими намірами, включаючи не тільки хакерів, а й некомп'ютерних злочинців і навіть терористів. <br><b>(9475 переглядів за 1 тиждень)</b> </i></p> <p>Денис Батранков <br>denisNOSPAMixi.ru</p> <p><b>Увага:</b><i>Ця стаття не є керівництвом до дії. Ця стаття написана для Вас, адміністратори WEB серверів, щоб у Вас зникло хибне відчуття, що Ви в безпеці, і Ви нарешті зрозуміли підступність цього методу отримання інформації та взялися за захист свого сайту.</i></p> <h2>Вступ</h2> <p>Я, наприклад, за 0.14 секунди знайшов 1670 сторінок!</p> <p><b>2. </b>Введемо інший рядок, наприклад:</p> <b> <a target="_blank" href="http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=inurl:%22auth_user_file.txt%22">inurl:"auth_user_file.txt"</a> </b> <p>трохи менше, але цього вже достатньо для вільного скачування та для підбору паролів (за допомогою того ж таки John The Ripper). Нижче я наведу ще низку прикладів.</p> <p>Отже, Вам треба усвідомити, що пошукова машина Google відвідала більшість із сайтів Інтернету і зберегла в кеші інформацію, що міститься на них. Ця кешована інформація дозволяє отримати інформацію про сайт і вміст сайту без прямого підключення до сайту, лише копаючись у тій інформації, яка зберігається всередині Google. Причому якщо інформація на сайті вже недоступна, то інформація в кеші ще, можливо, збереглася. Все, що потрібно для цього методу: знати деякі ключові слова Google. Цей технічний прийом називається Google Hacking.</p> <p>Вперше інформація про Google Hacking з'явилася на розсилці Bugtruck ще три роки тому. У 2001 році цю тему було піднято одним французьким студентом. Ось посилання на цей лист http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html. У ньому наведено перші приклади таких запитів:</p> <p><b>1) Index of /admin <br>2) Index of /password <br>3) Index of /mail <br>4) Index of / +banques +filetype:xls (for france...) <br>5) Index of / +passwd <br>6) Index of/password.txt</b></p> <p>Нашуміла ця тема в англо-читальній частині Інтернету зовсім недавно: після статті Johnny Long, що вийшла 7 травня 2004 року. Для більш повного вивчення Google Hacking раджу зайти на сайт цього автора http://johnny.ihackstuff.com. У цій статті я хочу ввести вас у курс справи.</p> <p>Ким це може бути використано: <br>- Журналісти, шпигуни та всі ті люди, хто любить пхати носа не у свої справи, можуть використовувати це для пошуку компромату. <br>- Хакери, які розшукують потрібні цілі для злому.</p> <h2>Як працює Google.</h2> <p>Для продовження розмови нагадаю деякі з ключових слів, які використовуються у запитах Google.</p> <p><b>Пошук за допомогою знака +</b></p> <p>Google виключає із пошуку неважливі, на його думку, слова. Наприклад запитальні слова, прийменники та артиклі в англійській мові: наприклад are, of, where. У російській мові Google, схоже, всі слова вважає важливими. Якщо слово виключається з пошуку, Google пише про це. Щоб Google почав шукати сторінки з цими словами перед ними, потрібно додати знак + без пробілу перед словом. Наприклад:</p> <p><b>ace +of base</b></p> <p><b>Пошук за допомогою знаку –</b></p> <p>Якщо Google знаходить велику кількість сторінок, з яких необхідно виключити сторінки з певною тематикою, можна змусити Google шукати тільки сторінки, на яких немає певних слів. Для цього треба вказати ці слова, поставивши перед кожним знак без пробілу перед словом. Наприклад:</p> <p><b>рибалка-горілка</b></p> <p><b>Пошук за допомогою знака ~</b></p> <p>Можливо, що ви захочете знайти не лише вказане слово, але також його синоніми. Для цього перед словом вкажіть символ ~.</p> <p><b>Пошук точної фрази за допомогою подвійних лапок</b></p> <p>Google шукає на кожній сторінці всі входження слів, які ви написали в рядку запиту, причому йому не має значення взаємне розташування слів, головне щоб усі зазначені слова були на сторінці одночасно (це дія за умовчанням). Щоб знайти точну фразу – її треба взяти у лапки. Наприклад:</p> <p><b>"підставка для книг"</b></p> <p>Щоб було хоч одне із зазначених слів, потрібно вказати логічну операцію явно: OR. Наприклад:</p> <p><b>книга безпека OR захист</b></p> <p>Крім того, у рядку пошуку можна використовувати знак * для позначення будь-якого слова і. для позначення будь-якого символу.</p> <p><b>Пошук слів за допомогою додаткових операторів</b></p> <p>Існують пошукові оператори, які вказуються у рядку пошуку у форматі:</p> <p><b>operator:search_term</b></p> <p>Прогалини поруч із двокрапкою не потрібні. Якщо ви вставите пробіл після двокрапки, то побачите повідомлення про помилку, а перед ним, Google буде використовувати їх як звичайний рядок для пошуку. <br>Існують групи додаткових операторів пошуку: мови - вказують якою мовою ви хочете побачити результат, дата - обмежують результати за минулі три, шість або 12 місяців, входження - вказують де документа потрібно шукати рядок: скрізь, в заголовку, в URL, домени - здійснювати пошук за вказаним сайтом або навпаки виключити його з пошуку, безпечний пошук - блокують сайти, що містять вказаний тип інформації та видаляють їх зі сторінок результатів пошуку. <br>При цьому деякі оператори не потребують додаткового параметра, наприклад запит " <b>cache:www.google.com</b>" може бути викликаний як повноцінний рядок для пошуку, а деякі ключові слова, навпаки, вимагають наявності слова для пошуку, наприклад " <b>site:www.google.com help</b>У світлі нашої тематики подивимося на наступні оператори:</p> <table border="1" cellpadding="0" cellspacing="0"><tr><td valign="top"><p><b>Оператор</b></p> </td> <td valign="top"><p><b>Опис</b></p> </td> <td valign="top"><p><b>Потрібний додатковий параметр?</b></p> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>пошук тільки за вказаним у search_term сайті</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>пошук лише у документах з типом search_term</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>знайти сторінки, які містять search_term у заголовку</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>знайти сторінки, які містять усі слова search_term у заголовку</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>знайти сторінки, які містять слово search_term у своїй адресі</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>знайти сторінки, які містять усі слова search_term у своїй адресі</p> </td> <td valign="top"> </td> </tr></table><p>Оператор <b>site:</b>обмежує пошук тільки за вказаним сайтом, причому можна вказати не тільки доменне ім'я, а й IP адресу. Наприклад, введіть:</p> <p>Оператор <b>filetype:</b>обмежує пошук у файлах певного типу. Наприклад:</p> <p>На дату виходу статті Googlе може шукати всередині 13 різних форматів файлів:</p> <ul><li>Adobe Portable Document Format (pdf)</li> <li>Adobe PostScript (ps)</li> <li>Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)</li> <li>Lotus WordPro (lwp)</li> <li>MacWrite (mw)</li> <li>Microsoft Excel (xls)</li> <li>Microsoft PowerPoint (ppt)</li> <li>Microsoft Word (doc)</li> <li>Microsoft Works (wks, wps, wdb)</li> <li>Microsoft Write (wri)</li> <li>Rich Text Format (RTF)</li> <li>Shockwave Flash (swf)</li> <li>Text (ans, txt)</li> </ul><p>Оператор <b>link:</b>показує всі сторінки, які вказують на цю сторінку. <br>Напевно, завжди цікаво подивитися, як багато місць в Інтернеті знають про тебе. Пробуємо:</p> <p>Оператор <b>cache:</b>показує версію сайту в кеші Google, як вона виглядала, коли Google востаннє відвідував цю сторінку. Беремо будь-який сайт, що часто змінюється, і дивимося:</p> <p>Оператор <b>intitle:</b>шукає вказане слово у заголовку сторінки. Оператор <b>allintitle:</b>є розширенням – він шукає всі зазначені кілька слів у заголовку сторінки. Порівняйте:</p> <p><b>intitle:політ на марс <br>intitle:політ intitle:на intitle:марс <br>allintitle: політ на марс</b></p> <p>Оператор <b>inurl:</b>змушує Google показати всі сторінки, що містять в URL зазначений рядок. Оператор allinurl: шукає усі слова в URL. Наприклад:</p> <p><b>allinurl:acid acid_stat_alerts.php</b></p> <p>Ця команда особливо корисна для тих, хто не має SNORT – хоч зможуть подивитися, як він працює на реальній системі.</p> <h2>Методи злому за допомогою Google</h2> <p>Отже, ми з'ясували що, використовуючи комбінацію перелічених вище операторів і ключових слів, будь-яка людина може зайнятися збором потрібної інформації та пошуком уразливостей. Ці технічні методи часто називають Google Hacking.</p> <h3>Карта сайту</h3> <p>Можна використовувати оператор site: щоб переглянути всі посилання, які Google знайшов на сайті. Зазвичай сторінки, які динамічно створюються скриптами, за допомогою параметрів не індексуються, тому деякі сайти використовують фільтри ISAPI, щоб посилання були не у вигляді <b>/article.asp?num=10&dst=5</b>, а зі слішами <b>/article/abc/num/10/dst/5</b>. Це зроблено для того, щоб сайт взагалі індексувався пошуковими системами.</p> <p>Спробуємо:</p> <p><b>site:www.whitehouse.gov whitehouse</b></p> <p>Google вважає, що кожна сторінка сайту містить слово whitehouse. Цим ми користуємося, щоб отримати всі сторінки. <br>Є й спрощений варіант:</p> <p><b>site:whitehouse.gov</b></p> <p>І що найприємніше - товариші з whitehouse.gov навіть не дізналися, що ми подивилися на структуру їхнього сайту і навіть заглянули в кешовані сторінки, які завантажив Google. Це може бути використане для вивчення структури сайтів і перегляду вмісту, залишаючись непоміченим до певного часу.</p> <h3>Перегляд списку файлів у каталогах</h3> <p>WEB-сервери можуть показувати списки директорій сервера замість звичайних HTML сторінок. Зазвичай це робиться для того, щоб користувачі вибирали та завантажували певні файли. Однак у багатьох випадках адміністратори не мають на меті показати вміст директорії. Це виникає внаслідок неправильної конфігурації сервера або відсутності головної сторінки директорії. В результаті у хакера з'являється шанс знайти щось цікаве в директорії і скористатися цим для своїх цілей. Щоб знайти всі такі сторінки, достатньо помітити, що вони містять у своєму заголовку слова: index of. Але оскільки слова index of містять не лише такі сторінки, то потрібно уточнити запит та врахувати ключові слова на самій сторінці, тому нам підійдуть запити виду:</p> <p><b>intitle:index.of parent directory <br>intitle:index.of name size</b></p> <p>Оскільки в основному лістинги директорій зроблено навмисно, то вам, можливо, важко буде знайти помилково виведені лістинги з першого разу. Але принаймні ви вже зможете використовувати листинги для визначення версії WEB сервера, як описано нижче.</p> <h3>Отримання версії WEB-сервера.</h3> <p>Знання версії WEB сервера завжди корисне перед початком будь-якої атаки хакера. Знову ж таки завдяки Google можна отримати цю інформацію без підключення до сервера. Якщо уважно подивитися на лістинг директорії, можна побачити, що там виводиться ім'я WEB сервера та його версія.</p> <p><b>Apache1.3.29 - ProXad Server на trf296.free.fr Port 80</b></p> <p>Досвідчений адміністратор може підмінити цю інформацію, але зазвичай вона відповідає істині. Таким чином, щоб отримати цю інформацію достатньо надіслати запит:</p> <p><b>intitle:index.of server.at</b></p> <p>Щоб отримати інформацію для конкретного сервера, уточнюємо запит:</p> <p><b>intitle:index.of server.at site:ibm.com</b></p> <p>Або навпаки шукаємо сервери, які працюють на певній версії сервера:</p> <p><b>intitle:index.of Apache/2.0.40 Server at</b></p> <p>Ця техніка може бути використана хакером для пошуку жертви. Якщо у нього, наприклад, є експлойт для певної версії WEB сервера, він може знайти його і спробувати наявний експлойт.</p> <p>Також можна отримати версію сервера, переглядаючи сторінки, які за замовчуванням встановлюються під час встановлення свіжої версії сервера WEB. Наприклад, щоб побачити тестову сторінку Apache 1.2.6, достатньо набрати</p> <p><b>intitle:Test.Page.for.Apache it.worked!</b></p> <p>Мало того, деякі операційні системи при встановленні відразу ставлять та запускають WEB сервер. При цьому деякі користувачі навіть про це не підозрюють. Звичайно якщо ви побачите, що хтось не видалив сторінку за замовчуванням, то логічно припустити, що комп'ютер взагалі не піддавався будь-якій настройці і, ймовірно, вразливий для атак.</p> <p>Спробуйте знайти сторінки IIS 5.0</p> <p><b>allintitle:Welcome to Windows 2000 Internet Services</b></p> <p>Що стосується IIS можна визначити як версію сервера, а й версію Windows і Service Pack.</p> <p>Ще одним способом визначення версії WEB сервера є пошук посібників (сторінок підказок) та прикладів, які можуть бути встановлені на сайті за умовчанням. Хакери знайшли багато способів використовувати ці компоненти, щоб отримати привілейований доступ до сайту. Саме тому потрібно на бойовому сайті видалити ці компоненти. Не кажучи вже про те, що за наявністю цих компонентів можна отримати інформацію про тип сервера та його версію. Наприклад, знайдемо посібник з apache:</p> <p><b>inurl:manual apache directives modules</b></p> <h3>Використання Google як CGI сканера.</h3> <p>CGI сканер або WEB сканер – утиліта для пошуку вразливих скриптів та програм на сервері жертви. Ці утиліти повинні знати що шукати, для цього вони мають цілий список вразливих файлів, наприклад:</p> <p><b>/cgi-bin/cgiemail/uargg.txt <br>/random_banner/index.cgi <br>/random_banner/index.cgi <br>/cgi-bin/mailview.cgi <br>/cgi-bin/maillist.cgi <br>/cgi-bin/userreg.cgi <br><br>/iissamples/ISSamples/SQLQHit.asp <br>/SiteServer/admin/findvserver.asp <br>/scripts/cphost.dll <br>/cgi-bin/finger.cgi</b></p> <p>Ми можемо знайти кожен із цих файлів за допомогою Google, використовуючи додатково з ім'ям файлу в рядку пошуку слова index of або inurl: ми можемо знайти сайти з уразливими скриптами, наприклад:</p> <p><b>allinurl:/random_banner/index.cgi</b></p> <p>Користуючись додатковими знаннями, хакер може використовувати вразливість скрипта і за допомогою цієї вразливості змусити скрипт видати будь-який файл, що зберігається на сервері. Наприклад, файл паролів.</p> <h2>Як захистити себе від злому через Google</h2> <h4>1. Не викладайте важливі дані на сервер WEB.</h4> <p>Навіть якщо ви виклали дані тимчасово, ви можете забути про це або хтось встигне знайти і забрати ці дані поки ви їх не стерли. Не робіть так. Є багато інших способів передачі, що захищають їх від крадіжки.</p> <h4>2. Перевірте свій веб-сайт.</h4> <p>Використовуйте описані методи для дослідження свого сайту. Періодично перевіряйте свій сайт новими методами, які з'являються на сайті http://johnny.ihackstuff.com. Пам'ятайте, що якщо ви хочете автоматизувати свої дії, потрібно отримати спеціальний дозвіл від Google. Якщо уважно прочитати <a target="_blank" href="http://www.google.com/terms_of_service.html">http://www.google.com/terms_of_service.html</a>, то ви побачите фразу: Ви не можете автоматично приймати будь-які пошуки в будь-який sort to Google's система без express permission in advance from Google.</p> <h4>3. Можливо, вам не потрібно, щоб Google індексував ваш сайт або його частину.</h4> <p>Google дозволяє видалити посилання на свій сайт або його частину зі своєї бази, а також видалити сторінки з кешу. Крім того ви можете заборонити пошук зображень на вашому сайті, заборонити показувати короткі фрагменти сторінок у результатах пошуку Всі можливості видалення сайту описані на сранці <a target="_blank" href="http://www.google.com/remove.html">http://www.google.com/remove.html</a>. Для цього ви повинні підтвердити, що ви дійсно власник цього сайту або вставити на сторінку теги або</p> <h4>4. Використовуйте robots.txt</h4> <p>Відомо, що пошукові машини заглядають у файл robots.txt що лежить у корені сайту і не індексують ті частини, які позначені словом <b>Disallow</b>. Ви можете скористатися цим, щоб частина сайту не індексувалася. Наприклад, щоб не індексувався весь сайт, створіть файл robots.txt, який містить два рядки:</p> <p><b>User-agent: * <br>Disallow: /</b></p> <h2>Що ще буває</h2> <p>Щоб життя вам медом не здавалося, скажу насамкінець, що існують сайти, які стежать за тими людьми, які, використовуючи вищевикладені методи, розшукують дірки у скриптах та WEB серверах. Прикладом такої сторінки є</p> <h2>Додаток.</h2> <p>Трохи солодкого. Спробуйте самі щось із наступного списку:</p> <p>1. #mysql dump filetype:sql - пошук дампів баз даних mySQL <br>2. Host Vulnerability Summary Report – покаже вам які вразливості знайшли інші люди <br>3. phpMyAdmin running on inurl:main.php - це змусить закрити керування через панель phpmyadmin <br>4. not for distribution confidential <br>5. Request Details Control Tree Server Variables <br>6. Running in Child mode <br>7. Цей report was generated by WebLog <br>8. intitle:index.of cgiirc.config <br>9. filetype:conf inurl:firewall -intitle:cvs - може кому потрібні файли кофігурації файрволів? :) <br>10. intitle:index.of finances.xls - мда. <br>11. intitle:Index of dbconvert.exe chats – логі icq чату <br>12. intext:Tobias Oetiker traffic analysis <br>13. intitle:Usage Statistics for Generated by Webalizer <br>14. intitle:statistics of advanced web statistics <br>15. intitle:index.of ws_ftp.ini - конфіг ws ftp <br>16. inurl:ipsec.secrets holds shared secrets – секретний ключ – гарна знахідка <br>17. inurl:main.php Welcome to phpMyAdmin <br>18. inurl:server-info Apache Server Information <br>19. site:edu admin grades <br>20. ORA-00921: unexpected end of SQL command – отримуємо шляхи <br>21. intitle:index.of trillian.ini <br>22. intitle:Index of pwd.db <br>23. intitle:index.of people.lst <br>24. intitle:index.of master.passwd <br>25. inurl:passlist.txt <br>26. intitle:Index of .mysql_history <br>27. intitle:index of intext:globals.inc <br>28. intitle:index.of administrators.pwd <br>29. intitle:Index.of etc shadow <br>30. intitle:index.of secring.pgp <br>31. inurl:config.php dbuname dbpass <br>32. inurl:perform filetype:ini</p><li>"Hacking mit Google"</li> <span> <p>Навчальний центр "Інформзахист" http://www.itsecurity.ru - провідний спеціалізований центр у галузі навчання інформаційної безпеки (Ліцензія Московського Комітету освіти №015470, Державна акредитація №004251). Єдиний авторизований навчальний центр компаній Internet Security Systems та Clearswift на території Росії та країн СНД. Авторизований навчальний центр компанії Microsoft (спеціалізація Security). Програми навчання узгоджено з Держтехкомісією Росії, ФСБ (ФАПСІ). Свідоцтва про навчання та державні документи щодо підвищення кваліфікації.</p><p>Компанія SoftKey - це унікальний сервіс для покупців, розробників, дилерів та афіліат-партнерів. Крім того, це один із найкращих Інтернет-магазинів ПЗ в Росії, Україні, Казахстані, який пропонує покупцям широкий асортимент, безліч способів оплати, оперативну (часто миттєву) обробку замовлення, відстеження процесу виконання замовлення в персональному розділі, різні знижки від магазину та виробників ПЗ.</p> </span> <p>Привіт читачам <b>сайт</b>)</p><p>У цій статті ми розглянемо Phoca Guestbook – компонент гостьової книги для <b>Joomla-сайтів</b>.</p><p>Що можна сказати про цей компонент... Дуже простий та зручний в адмініструванні, має достатню кількість налаштувань для розміщення відгуків на Вашому сайті.</p><p><b>Можливості Phoca Guestbook:</b></p><ul><li>вибір прав доступу для користувачів;</li> <li>фільтрація небажаних слів та фраз;</li> <li>блокування IP-адрес;</li> <li>обмеження кількості друкованих символів;</li> <li>капча;</li> <li>модернізація повідомлень (перевірка модератором);</li> <li>зовнішній вигляд відгуків (колір, відображення ім'я, відображення e-mail та адреси сайту).</li> </ul><p>Отже, розглянемо компонент.</p><p>Після встановлення, <b>Phoca Guestbook</b>не потребує глобальних налаштувань.</p><p><b>Панель управління:</b></p><ul><li>Posts - всі повідомлення, залишені користувачами;</li> <li>Guestbooks – категорії (створені гостьові книги);</li> <li>Info - Інформація та оновлення компонента.</li> </ul><p>Як видно, на малюнку праворуч є кнопка "Параметри". Якщо натиснути на неї, то можна налаштувати гостьову книгу і сам компонент.</p><p><img src='https://i2.wp.com/joomla-secrets.ru/images/guest/2.png' width="100%" loading=lazy loading=lazy></p><table border="1" style="margin-left: auto; margin-right: auto; height: 322px; width: 750px;" cellpadding="0"><tbody><tr><td style="text-align: left;"><p>Параметр</p> </td> <td><p>Значення</p> </td> </tr><tr><td style="text-align: left;"><p>Display Subject In Form</p> </td> <td><p>(Так | Так (обов'язково) | Ні) показати або приховати поле Об'єкт у формі, встановлюється, якщо поле Тема буде потрібно</p> </td> </tr><tr><td style="text-align: left;"><p>Display Name In Form</p> </td> <td><p>(Так | Так (обов'язково) | Ні) показати або приховати ім'я поля у формі, встановлюється, якщо поле Name буде необхідно</p> </td> </tr><tr><td style="text-align: left;"><p>Display Email In Form</p> </td> <td><p>(Так | Так (обов'язково) | Ні) показати або приховати поле e-mail у форму, встановіть поле e-mail, якщо потрібно</p> </td> </tr><tr><td style="text-align: left;"><p>Display Website In Form</p> </td> <td><p>(Так | Так (обов'язково) | Ні) показати або приховати поле Сайт у формі, встановіть поле, якщо сайт вимагатиметься</p> </td> </tr><tr><td style="text-align: left;"><p>Display Content In Form</p> </td> <td><p>(Так | Так (обов'язково) | Ні) показати або приховати вміст поля у формі</p> </td> </tr><tr><td style="text-align: left;"><p>Enable Javascript Editor</p> </td> <td><p>(Так | Ні) Увімкнути або вимкнути JavaScript Editor</p> </td> </tr><tr><td style="text-align: left;"><p>Display Path In Javascript Editor</p> </td> <td><p>(Так | Ні) показати або приховати інформацію про шлях до редактора JavaScript</p> </td> </tr><tr><td style="text-align: left;"> </td> <td><p>(Приховати | Дисплей) Встановіть, якщо форма має відображатися чи ні.</p> </td> </tr><tr><td style="text-align: left;"> </td> <td><p>(Top | Нижній) Виберіть Поточне розташування</p> </td> </tr><tr><td style="text-align: left;"><p>Display Required Sign</p> </td> <td><p>(Так | Ні) Встановіть для відображення полів, які потрібні</p> </td> </tr><tr><td style="text-align: left;"> </td> <td><p>(Так | Ні) Встановіть для відображення повідомлень.</p> </td> </tr><tr><td style="text-align: left;"> </td> <td><p>ширина (у пікселях)</p> </td> </tr><tr><td style="text-align: left;"> </td> <td><p>висота (у пікселях)</p> </td> </tr><tr><td style="text-align: left;"> </td> <td><p>Встановити ширину таблиці (таблиця, у якій відображається форма, у пікселях)</p> </td> </tr></tbody></table><p><img src='https://i2.wp.com/joomla-secrets.ru/images/guest/3.png' width="100%" loading=lazy loading=lazy></p><table border="1" style="height: 184px; margin-left: auto; margin-right: auto; width: 753px;" cellpadding="0"><tbody><tr style="text-align: center;"><td><p>Параметр</p> </td> <td><p>Значення</p> </td> </tr><tr><td> </td> <td><p>Якщо не зареєстрований користувач залишає повідомлення, можна дати йому ім'я за промовчанням. Наприклад: Гість</p> </td> </tr><tr><td><p>Username або Name</p> </td> <td><p>(Ім'я користувача | Ім'я) виберіть ім'я, яке має бути відображене у гостьовій книзі (Ім'я користувача або реальне ім'я користувача)</p> </td> </tr><tr><td><p>Disable User Check</p> </td> <td><p>(Ні | Так) Перевірка користувача (вимкнути цей параметр не рекомендується)</p> </td> </tr><tr><td><p>Registered Users Only</p> </td> <td><p>(Так | Ні) Якщо Так, тільки зареєстровані користувачі можуть додавати нові повідомлення</p> </td> </tr><tr><td> </td> <td><p>(Так | Ні) Якщо так, то повідомлення буде відображатися після схвалення адміністратора</p> </td> </tr><tr><td> </td> <td><p>відправити лист</p> </td> </tr></tbody></table><p><img src='https://i1.wp.com/joomla-secrets.ru/images/guest/4.png' width="100%" loading=lazy loading=lazy></p><table border="1" style="margin-left: auto; margin-right: auto; height: 206px; width: 721px;" cellpadding="0"><tbody><tr><td><p>Параметр</p> </td> <td><p>Значення</p> </td> </tr><tr><td><p>Display Name In Post</p> </td> <td><p>(Так | Ні) показати або приховати ім'я (ім'я користувача) (гостової книги)</p> </td> </tr><tr><td><p>Display Email In Post</p> </td> <td><p>(Так | Ні) показати або приховати електронну пошту (гостєвій книзі)</p> </td> </tr><tr><td><p>Display Website In Post</p> </td> <td><p>(Так | Ні) показати або приховати сайт в (гостєвій книзі)</p> </td> </tr><tr><td> </td> <td><p>Встановити формат дати</p> </td> </tr><tr><td> </td> <td><p>Встановити колір шрифту</p> </td> </tr><tr><td><p>Second Font Color</p> </td> <td><p>Встановити другий колір шрифту (колір шрифту дати)</p> </td> </tr><tr><td><p>Background Color</p> </td> <td><p>Встановити колір тла</p> </td> </tr><tr><td> </td> <td><p>Встановлення кольору кордону</p> </td> </tr><tr><td><p>Pagination Default Value</p> </td> <td><p>Встановіть стандартне значення для нумерації сторінок</p> </td> </tr><tr><td> </td> <td><p>Встановити нумерацію сторінок. Відокремлюються один від одного комою (,)</p> </td> </tr><tr><td><p>Pagination Hide All</p> </td> <td><p>(Так | Ні) всі значення будуть приховані (нумерація сторінок)</p> </td> </tr></tbody></table><p><img src='https://i2.wp.com/joomla-secrets.ru/images/guest/5.png' width="100%" loading=lazy loading=lazy></p><table border="1" style="margin-left: auto; margin-right: auto;" cellpadding="0"><tbody><tr><td><p>Параметр</p> </td> <td><p>Значення</p> </td> </tr><tr><td><p>Forbidden Word Filter</p> </td> <td><p>Встановити заборонені слова, які не відображатимуться в інтерфейсі. Слова відокремлюються один від одного комою (,)</p> </td> </tr><tr><td><p>Forbidden Whole Word Filter</p> </td> <td><p>Встановити всі заборонені слова, які не відображатимуться в інтерфейсі. Слова відокремлюються один від одного комою (,)</p> </td> </tr><tr><td><p>Save post with forbidden words</p> </td> <td><p>(Так | Ні) Якщо так, то пости, які включають заборонені слова, будуть збережені в гостьовій книзі (заборонені слова будуть приховані, якщо збережені)</p> </td> </tr><tr><td> </td> <td><p>Додати IP, які ви хочете заблокувати. Відділіть кожну IP комою (,)</p> </td> </tr><tr><td><p>Maximum Characters</p> </td> <td><p>Встановивши максимальну кількість символів, вони можуть бути збережені в базі даних</p> </td> </tr><tr><td> </td> <td><p>Встановити максимальну кількість URL, які можуть відображатися в повідомленні (0: ні, посилання будуть відображатися в повідомленнях, -1: всі URL-адреси будуть відображатися в повідомленнях, наприклад 3: тільки три посилання з усіх URL будуть відображатися в повідомленнях)</p> </td> </tr><tr><td><p>Not Allowed URL Identification Words</p> </td> <td><p>Набір слів, який визначатиме чи допускати URL-адресу в повідомленні. Відділіть кожне слово кома (,). приклад:: / /,. HTM. ASP. JSP. PHP, WWW.,. COM,. ORG.</p> </td> </tr><tr><td> </td> <td><p>Увімкнення або вимкнення захисту Captcha</p> </td> </tr><tr><td> </td> <td><p>Змініть цей параметр тільки в тому випадку, ви не бачитимете капчу.</p> </td> </tr><tr><td><p>Enable Captcha - Users</p> </td> <td><p>(Всі | Не зареєстровані) Параметр відображення капчі для груп користувачів (чи показувати капчу зареєстрованим)</p> </td> </tr><tr><td><p>Standard Captcha Characters</p> </td> <td><p>Числа, малі літери, символи верхнього регістру, які відображатимуться у стандартному зображенні Captcha</p> </td> </tr><tr><td><p>Math Captcha Characters</p> </td> <td><p>Числа, малі літери, символи верхнього регістру, які будуть відображатися в Math зображення Captcha</p> </td> </tr><tr><td><p>TTF Символи</p> </td> <td><p>Числа, малі літери, символи верхнього регістру, які будуть відображатися в TTF зображення Captcha</p> </td> </tr><tr><td><p>TTF Captcha Characters</p> </td> <td><p>Для відображення ре-капчі введіть публічний код</p> </td> </tr><tr><td><p>reCAPTCHA Public Key</p> </td> <td><p>Встановити рекапчі Public Key</p> </td> </tr><tr><td><p>Enable Akismet Spam Protection</p> </td> <td><p>(Ні | Так) Надсилає всі дані нового запису geustbook в Akismet - веб-сервіс для перевірки спаму</p> </td> </tr><tr><td><p>Block Spam (Akismet)</p> </td> <td><p>(Ні | Так) Блокувати пости, які не пройшли перевірку в Akismet</p> </td> </tr><tr><td> </td> <td><p>Встановити Akismet API ключ, який потрібно використовувати в Akismet-Spam. Отримайте ваш на https://akismet.com/signup/ безкоштовно</p> </td> </tr><tr><td> </td> <td><p>Основний URL вашого сайту. (URL повинен включати префікс http://)</p> </td> </tr><tr><td> </td> <td> </td> </tr><tr><td><p>Enable HTML Purifier</p> </td> <td><p>(Ні | Так) Увімкнути або вимкнути HTML Purifier</p> </td> </tr><tr><td> </td> <td><p>Встановити суфікс сесії (Це функція безпеки, щоб змінити ім'я сесії, встановіть унікальний суфікс, наприклад: a100b20c3)</p> </td> </tr><tr><td><p>Enable Hidden Field</p> </td> <td><p>(Ні | Так) Увімкнути або вимкнути приховані поля. Деякі спам-ботів намагаються заповнити всі поля на місці, якщо вони заповнюють це приховане поле, яке людина не бачить, запис не буде додано до гостьової книги.</p> </td> </tr><tr><td> </td> <td><p>(Так | Ні) Увімкнути кеш.</p> </td> </tr><tr><td><p>Enable Detecting Incoming Page</p> </td> <td><p>(Так | Ні) Увімкнути або вимкнути виявлення вхідних сторінок. Це функція безпеки. Якщо ви увімкнете її, то сторінка, з якої прийшов пост до гостьової книги, зберігатиметься і відображатиметься в інтерфейсі.</p> </td> </tr></tbody></table> <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> </div> </article> <div class="post-share"> <div>Поділіться з друзями або збережіть для себе:</div> <script src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js"></script> <script src="//yastatic.net/share2/share.js"></script> <div class="ya-share2" data-services="collections,vkontakte,facebook,odnoklassniki,moimir,gplus,viber,whatsapp,skype,telegram"></div> <br> <div id="post-ratings-14689-loading" class="post-ratings-loading"> <img src="https://delicesucre.ru/wp-content/plugins/wp-postratings/images/loading.gif" width="16" height="16" class="post-ratings-image" / loading=lazy loading=lazy>Завантаження...</div> </div> <div class='yarpp-related'> <div class="related"> <div class="headline">Рекомендуємо статті на тему</div> <div class="items"> <div class="item"> <div class="item__image"> <picture> <source media="(max-width: 479px)" srcset="/wp-content/themes/delicesucre.ru/cache/945f81849_460x250.png"><img src="/uploads/c4e8e7e8da6deefa70d6694ff86e424e.jpg" width="240" height="240" alt="Варення з гарбуза: рецепти швидко та смачно" / loading=lazy loading=lazy></picture> </div> <div class="item__title"><a href="/varene-iz-tykvy-s-apelsinami-varene-iz-tykvy-recepty/">Варення з гарбуза: рецепти швидко та смачно</a></div> </div> <div class="item"> <div class="item__image"> <picture> <source media="(max-width: 479px)" srcset="/wp-content/themes/delicesucre.ru/cache/945f81849_460x250.png"><img src="/uploads/378bce2007fefa6fa6271ba7f0f36480.jpg" width="240" height="240" alt="Солимо скумбрію будинку в розсолі" / loading=lazy loading=lazy></picture> </div> <div class="item__title"><a href="/solim-skumbriyu-doma-v-rassole-solim-skumbriyu-bez-vody-solim/">Солимо скумбрію будинку в розсолі</a></div> </div> <div class="item"> <div class="item__image"> <picture> <source media="(max-width: 479px)" srcset="/wp-content/themes/delicesucre.ru/cache/945f81849_460x250.png"><img src="/uploads/91ae13b220de98077e1e962a40da58ae.jpg" width="240" height="240" alt="Квашена капуста з яблуками" / loading=lazy loading=lazy></picture> </div> <div class="item__title"><a href="/kvashenaya-kapusta-recept-klassicheskii-v-banke-kvashenaya-kapusta-s-yablokami-s/">Квашена капуста з яблуками</a></div> </div> </div> </div> </div> </main> <aside class="sidebar"> <div class="amulets sidebar__section"> <div class="headline">Популярні статті</div> <ul class="amulets__list"> <li class="amulets__list-item"><a href="/osetinskii-pirog-s-kartoshkoi-i-s-syrom-recept-prigotovleniya-osetinskii-pirog-s-zelenyu-nachinki-dl/">Осетинський пиріг із зеленню</a></li> <li class="amulets__list-item"><a href="/koreiskii-salat-iz-zelenyh-pomidorov-zelenye-pomidory-po-koreiski/">Зелені помідори корейською</a></li> <li class="amulets__list-item"><a href="/varene-iz-tykvy-s-apelsinom-i-limonom-varene-iz-tykvy-s/">Варення з гарбуза з апельсином</a></li> <li class="amulets__list-item"><a href="/kak-porezat-griby-dlya-sushki-kak-sushit-griby-v-duhovke-elektricheskoi-i/">Як сушити гриби в духовці електричної та газової: особливості та рекомендації</a></li> <li class="amulets__list-item"><a href="/prigotovlenie-kompota-iz-ranetok-na-zimu-recepty-kompota-iz/">Рецепти компоту з ранеток</a></li> </ul> <div class="amulets__all"><a href="/">Дивитись всі статті</a></div> </div> <div class="sidebar__section sidebar__widget" id="recent-posts-3"> <div class="headline">Останні статті:</div> <ul> <li> <a href="/prezentaciya-na-temu-chitatelskii-dnevnik-recenzii-na-knigu-ernest/">Рецензії на книгу «» Ернест Сетон-Томпсон Ернест сетон томпсон доміно короткий зміст</a></li> <li> <a href="/madam-rekame---temnaya-i-pushistaya-livejournal-taina-madam/">Таємниця мадам рам'яні Франсуа жерар портрет мадам рамені</a></li> <li> <a href="/madam-rekame-portret-soblaznitelnicy-i-muzy/">Мадам Рекам'є – портрет спокусниці та музи.</a></li> <li> <a href="/esse-na-temu-samostoyatelno-rabotat-kak-pravilno-pisat-esse-struktura/">Як правильно писати есе: структура тексту, правила оформлення</a></li> <li> <a href="/predlozheniya-s-narechiem-o-e-s-ne-tema-pravopisanie-narechii-na-o-e/">Тема "правопис прислівників на о, е"</a></li> <li> <a href="/sochinenie-na-temu-professiya-zhurnalist-doklad-zhurnalist-moya/">Журналіст моя майбутня професія Есе на тему моя майбутня професія журналіст</a></li> <li> <a href="/chem-lyudi-vredyat-prirode-chelovek-unichtozhaet-prirodu-detskie/">Людина знищує природу</a></li> <li> <a href="/tu-storonu-svobody-i-dostoinstva-chitat-v-rossii-vpervye-pereveden-i-izdan-trud/">У Росії вперше переведено та видано працю Б</a></li> <li> <a href="/mormony-v-ssha-i-ih-uchenie-mormony-kto-eto-kto-takie-mormony/">Мормони: хто це Хто такі мормони і де живуть</a></li> <li> <a href="/solenie-sala-v-domashnih-usloviyah-kak-zasolit-salo-kak-posolit/">Солення сала в домашніх умовах</a></li> </ul> </div> <div class="sidebar__section sidebar__widget" id="text-2"> <div class="textwidget"> <div id="lilaho1" style="height:500px;width:300px;" align="center"></div> </div> </div> </aside> </div> <footer class="footer"><nav class="footer__nav nav"><ul> <li class="menu-item type-post_type object-page "><a href="/feedback/" itemprop="url">Зворотній зв'язок</a></li> <li class="menu-item type-post_type object-page "><a href="/sitemap.xml" itemprop="url">Карта сайту</a></li> <li class="menu-item type-post_type object-page "><a href="" itemprop="url">Реклама</a> <li class="menu-item type-post_type object-page "><a href="/feedback/" itemprop="url">Про сайт</a></li> </ul></nav><div class="footer__inner"><div class="footer__copyright" style="background:none;"> <div class="footer__copyright-title1"></div> <p>© 2024. Всі права захищені <br />Найкращі лайфхаки про їжу, будинок, відпочинок, здоров'я</p> </div><div class="footer__counters"></div><div class="footer__info"><p></p></div></div></footer> </div> </div> <script type="text/javascript" defer src="https://delicesucre.ru/wp-content/script.js"></script> </body> </html>