Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Сыграйте в классический пасьянс и попробуйте разложить по порядку колоду из 52 карт, начиная с короля и заканчивая тузом. Игра имеет четыре варианта: с 1, 2, 3 и 4 мастями. Выиграйте как можно больше в каждом варианте и улучшите свои показатели.

Пасьянс Паук «Классический»

Карточные, Логическая, Мобильная

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

PHP

С этим тегом используют

Программирование Программист IT Javascript HTML Web-программирование Разработка Все
752 поста сначала свежее
Вопрос из ленты «Эксперты»
user9674718
user9674718
8 месяцев назад

Вопрос владельцам Telegram каналов - Идея подписчики бесплатно⁠⁠

Предыстория идеи
Где году в 2008 - 2010 у меня с товарищем балы студия веб разработки, и мы очень успешно бесплатно продвигали сайты на первые страницы выдачи!
Наш рецепт был просто скрипт назвался кажется Linker
Суть скрипта была в том что на главной странице сайта появлялись ссылки партнеров
И ваша ссылка появлялась у партнеров ну конечно ротация по категориям итп

Это сильно поднимало индекс цитирования и сайт улетал вверх.

Конечно сейчас это не работает.

Сейчас я веду несколько телеграм каналов покупаю рекламу но выходит не очень, дорого

в лучшем случае 1 подписка 10 рублей

Суть моей идеи бот для обмена рекламой с тематическими каналами

Зарегистрировался добавил бота к с себе в канал он постит твою рекламу другим и тебе их рекламу.

Конечно каналы будут подбираться по количеству живых подписчиков.

Можно будет выбрать конкретные каналы или заблокировать конкретные каналы все через бота

Если вам такое интересно отпишите в наукометрии или поставьте + и я начну писать его уже сегодня !

Вопрос Спроси Пикабу PHP Сайт Telegram Telegram бот Telegram каналы Программа Текст
1
1
Mr.Ducks
Mr.Ducks
8 месяцев назад
Серия PHP и веб-разработка: полезные руководства и совет

Как создать систему регистрации и восстановления пароля на PHP: Пошаговое руководство⁠⁠

1. Файл register.php

Этот файл используется для регистрации новых пользователей.

Как создать систему регистрации и восстановления пароля на PHP: Пошаговое руководство PHP, Восстановление пароля, Безопасность, Веб-разработка, Инструкция, IT, Длиннопост

HTML-разметка

HTML-часть содержит форму для регистрации, куда пользователи вводят свой Email и Пароль.

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Регистрация</title>

</head>

<body>

<h2>Регистрация</h2>

<form action="register.php" method="POST">

<label for="email">Email:</label>

<input type="email" name="email" required><br>

<label for="password">Пароль:</label>

<input type="password" name="password" required><br>

<button type="submit">Зарегистрироваться</button>

</form>

<p><a href="reset_password.php">Восстановить пароль</a></p>

</body>

</html>

Как создать систему регистрации и восстановления пароля на PHP: Пошаговое руководство PHP, Восстановление пароля, Безопасность, Веб-разработка, Инструкция, IT, Длиннопост

PHP-скрипт

PHP-часть обрабатывает данные формы и регистрирует пользователя.

<?php

$host = 'localhost';

$dbname = 'my_database';

$username_db = 'root';

$password_db = 'root';

try {

$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username_db, $password_db);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

die("Ошибка подключения к базе данных: " . $e->getMessage());

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$email = $_POST['email'];

$password = password_hash($_POST['password'], PASSWORD_BCRYPT);

$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");

$stmt->execute([$email]);

if ($stmt->rowCount() > 0) {

echo "Пользователь с таким email уже зарегистрирован!";

} else {

$stmt = $pdo->prepare("INSERT INTO users (email, password) VALUES (?, ?)");

$stmt->execute([$email, $password]);

echo "Регистрация прошла успешно!";

}

}

?>

  • Подключение к базе данных: Здесь используется PDO для безопасного подключения.

  • Хэширование пароля: password_hash() шифрует пароль для безопасного хранения.

  • Проверка и регистрация: Если email уже существует, выводится сообщение об ошибке; если нет, пользователь успешно добавляется в базу.

2. Файл reset_password.php

Этот файл предоставляет форму для восстановления пароля.

HTML-разметка

Пользователь вводит свой email для получения письма со ссылкой на сброс пароля.

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Восстановление пароля</title>

</head>

<body>

<h2>Восстановление пароля</h2>

<form action="" method="POST">

<label for="email">Email:</label>

<input type="email" name="email" required><br>

<button type="submit">Восстановить пароль</button>

</form>

</body>

</html>

Как создать систему регистрации и восстановления пароля на PHP: Пошаговое руководство PHP, Восстановление пароля, Безопасность, Веб-разработка, Инструкция, IT, Длиннопост

PHP-скрипт

Код отправляет email с уникальной ссылкой для сброса пароля.use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

ini_set('display_errors', 1);

error_reporting(E_ALL);

$host = 'localhost';

$dbname = 'my_database';

$username_db = 'root';

$password_db = 'root';

try {

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username_db, $password_db);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

die("Ошибка подключения к базе данных: " . $e->getMessage());

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$email = $_POST['email'];

$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");

$stmt->execute([$email]);

if ($stmt->rowCount() > 0) {

$token = bin2hex(random_bytes(50));

$stmt = $pdo->prepare("UPDATE users SET reset_token = ? WHERE email = ?");

$stmt->execute([$token, $email]);

$mail = new PHPMailer(true);

try {

$mail->isSMTP();

$mail->Host = 'smtp.mail.ru';

$mail->SMTPAuth = true;

$mail->Username = 'ваш_email@mail.ru';

$mail->Password = 'ваш_пароль';

$mail->SMTPSecure = 'tls';

$mail->Port = 587;

$mail->setFrom('ваш_email@mail.ru', 'Ваш сайт');

$mail->addAddress($email);

$mail->isHTML(true);

$mail->Subject = 'Восстановление пароля';

$mail->Body = "Нажмите на ссылку для сброса пароля: <a href='http://localhost/reset.php?token=$token'>Сбросить пароль</a>";

$mail->send();

echo "Инструкции по восстановлению пароля отправлены на вашу почту!";

} catch (Exception $e) {

echo "Ошибка отправки письма: {$mail->ErrorInfo}";

}

} else {

echo "Пользователь с таким email не найден!";

}

}

?>

  • Подключение PHPMailer: PHPMailer настроен для отправки писем по SMTP.

  • Генерация токена: Для безопасности создается случайный токен, который добавляется в базу данных.

  • Отправка письма: Ссылка с токеном направляется пользователю на email, позволяя ему перейти к сбросу пароля.

Примечание: Для использования PHPMailer необходимо установить его через Composer:

composer require phpmailer/phpmailer

3. Файл reset.php

Этот файл позволяет пользователю задать новый пароль, используя токен сброса.

HTML-разметка

Форма для ввода нового пароля, с токеном, переданным в скрытом поле.

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Сброс пароля</title>

</head>

<body>

<h2>Сброс пароля</h2>

<form action="reset.php" method="POST">

<input type="hidden" name="token" value="<?php echo $_GET['token']; ?>" />

<label for="password">Новый пароль:</label>

<input type="password" name="password" required><br>

<button type="submit">Сбросить пароль</button>

</form>

</body>

</html>

Как создать систему регистрации и восстановления пароля на PHP: Пошаговое руководство PHP, Восстановление пароля, Безопасность, Веб-разработка, Инструкция, IT, Длиннопост

PHP-скрипт

PHP-скрипт проверяет токен и устанавливает новый пароль.

$host = 'localhost';

$dbname = 'my_database';

$username_db = 'root';

$password_db = 'root';

try {

$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username_db, $password_db);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

die("Ошибка подключения к базе данных: " . $e->getMessage());

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$token = $_POST['token'];

$new_password = password_hash($_POST['password'], PASSWORD_BCRYPT);

$stmt = $pdo->prepare("SELECT * FROM users WHERE reset_token = ?");

$stmt->execute([$token]);

if ($stmt->rowCount() > 0) {

$stmt = $pdo->prepare("UPDATE users SET password = ?, reset_token = NULL WHERE reset_token = ?");

$stmt->execute([$new_password, $token]);

echo "Пароль успешно сброшен!";

} else {

echo "Неверный или устаревший токен!";

}

}

  1. Проверка токена: Если токен действителен, то пароль обновляется и токен сбрасывается.

  2. Хэширование нового пароля: Новый пароль хэшируется перед сохранением в базу.

Эти три файла позволяют создать безопасную систему регистрации, восстановления и сброса пароля для пользователей.

Как создать систему регистрации и восстановления пароля на PHP: Пошаговое руководство

Создание системы регистрации и восстановления паролей – важный элемент безопасности любого веб-приложения, где пользователи создают учетные записи. В этой статье рассмотрим, как с помощью PHP, PDO и библиотеки PHPMailer реализовать систему, позволяющую пользователям регистрироваться, восстанавливать доступ и сбрасывать пароли.

Как это работает

Наша система регистрации и восстановления пароля состоит из трёх частей:

  1. Форма регистрации – страница, где пользователи могут зарегистрироваться, введя email и пароль.

  2. Форма восстановления пароля – страница, куда пользователь вводит email для получения инструкции по восстановлению.

  3. Форма сброса пароля – страница, где пользователь может создать новый пароль, перейдя по ссылке с уникальным токеном из письма.

Как реализовать регистрацию и хэширование паролей

Мы используем PHP-функцию password_hash() для безопасного хранения паролей в базе данных. Это важно для защиты данных пользователей на случай взлома базы. К тому же, проверка дубликатов email позволяет избежать повторной регистрации.

Реализация восстановления пароля

С помощью PHPMailer система отправляет email с уникальной ссылкой для сброса пароля. Это исключает возможность использования одного и того же токена, так как он создается случайным образом с помощью функции random_bytes() и сохраняется в базе данных.

Установка PHPMailer

Для работы PHPMailer используйте Composer:

composer require phpmailer/phpmailer

Примечания по безопасности

  1. Хранение паролей: Никогда не храните пароли в открытом виде. Используйте password_hash() для хэширования и password_verify() для проверки пароля при входе.

  2. Безопасное подключение к базе данных: Используйте PDO с параметризированными запросами, чтобы защитить приложение от SQL-инъекций.

  3. Срок действия токена: Рекомендуется добавить срок действия токена для сброса пароля, чтобы повысить безопасность системы.

Эта пошаговая реализация легко адаптируется под любые требования и поможет создать удобную и безопасную систему работы с учетными записями.

Показать полностью 4
PHP Восстановление пароля Безопасность Веб-разработка Инструкция IT Длиннопост
1
3
Mr.Ducks
Mr.Ducks
8 месяцев назад
Серия PHP и веб-разработка: полезные руководства и совет

PHP: Почему этот язык остается актуальным в 2024 году?⁠⁠

PHP — язык, который существует уже более 25 лет. За это время он прошел долгий путь, из простого языка для создания динамических веб-страниц, до мощного инструмента для разработки полноценных веб-приложений. Несмотря на появление новых языков и фреймворков, PHP остается одним из самых популярных языков в мире для веб-разработки. Но что делает PHP таким особенным и почему он продолжает занимать лидирующие позиции на рынке?

1. PHP 8.x: Мощные обновления для современного мира

С выходом PHP 8.x язык стал еще более эффективным и современным. Одним из ключевых обновлений стала поддержка JIT-компиляции (Just-in-Time), что значительно ускоряет выполнение кода, особенно для задач, связанных с вычислениями. Это позволяет PHP конкурировать по скорости с такими языками, как Java и C#.

Что нового в PHP 8.x:

  • JIT-компиляция: Увеличение производительности для сложных вычислений.

  • Named Arguments (Именованные аргументы): Возможность передавать параметры функции по имени, делая код более читабельным.

  • Match expression: Новый синтаксис для замены старых конструкций switch более лаконичным и мощным аналогом.

  • Attributes: Теперь можно добавлять метаданные к функциям и классам, улучшая поддержку фреймворков и библиотек.

  • Union Types: Поддержка объединения типов данных, что делает строгую типизацию в PHP более гибкой и полезной.

PHP: Почему этот язык остается актуальным в 2024 году? PHP, Веб-разработка, Программирование, Laravel, Symfony, Производительность, Кодирование, Разработка, IT, Длиннопост

2. Легкость изучения и использования

PHP часто выбирают разработчики благодаря его простоте и низкому порогу входа. Синтаксис языка интуитивно понятен, а большое количество учебных ресурсов делает его доступным для новичков. PHP отлично подходит для быстрого прототипирования веб-приложений, и даже разработчики с минимальным опытом могут создать полноценный веб-сайт за короткое время.

3. Обширная экосистема и сообщества

PHP имеет одну из самых больших и активных экосистем в мире веб-разработки. Вот некоторые ключевые моменты:

  • Composer: Мощный менеджер зависимостей для PHP. Composer упрощает интеграцию библиотек, фреймворков и пакетов в проекты, обеспечивая их автоматическое обновление.

  • Фреймворки: Laravel, Symfony, CodeIgniter, Yii — это лишь малая часть фреймворков, созданных на PHP. Каждый из них предоставляет мощные инструменты для разработки приложений любого масштаба.

  • CMS на базе PHP: WordPress, Drupal, Joomla — все эти популярные системы управления контентом работают на PHP, что делает его ключевым языком для создания веб-сайтов.

4. Высокая производительность и масштабируемость

Современные веб-приложения требуют высокой производительности и способности к масштабированию. В этом отношении PHP также проделал значительный путь. Использование кэширования (опкешей), таких как OPcache, помогает значительно ускорить выполнение скриптов, снижая нагрузку на сервер.

Кроме того, PHP отлично интегрируется с современными решениями для масштабирования и высоких нагрузок, такими как NGINX, Redis, Memcached и Docker. Это делает его идеальным выбором для крупных проектов с миллионами пользователей.

5. Поддержка и обратная совместимость

PHP известен своей долгосрочной поддержкой версий и постоянными улучшениями без необходимости полностью переписывать код старых приложений. Это делает язык надежным выбором для компаний, которые ищут стабильную и поддерживаемую технологию для своих проектов.

6. Безопасность

Хотя PHP долгое время подвергался критике за возможные проблемы с безопасностью, в последние годы ситуация значительно улучшилась. Современные версии PHP предоставляют встроенные механизмы для защиты от популярных уязвимостей, таких как SQL-инъекции, XSS-атаки и CSRF. Также благодаря сообществу и наличию большого количества библиотек, реализующих лучшие практики безопасности, разработчики могут легко интегрировать дополнительные уровни защиты в свои проекты.

7. Заключение

PHP продолжает развиваться и адаптироваться к требованиям современного веба. Его производительность, богатая экосистема и простота в использовании делают его идеальным инструментом как для новичков, так и для профессионалов. В 2024 году, с выходом PHP 8.x, этот язык еще раз доказал свою жизнеспособность и готовность к новым вызовам.

Если вы до сих пор не использовали PHP в своих проектах, самое время попробовать! Ведь за этим языком стоит огромная поддержка сообщества и множество успешных примеров использования.

Показать полностью 1
PHP Веб-разработка Программирование Laravel Symfony Производительность Кодирование Разработка IT Длиннопост
1
Mr.Ducks
Mr.Ducks
8 месяцев назад
Серия PHP и веб-разработка: полезные руководства и совет

Laravel vs WordPress: Что Выбрать для Веб-Разработки?⁠⁠

Laravel vs WordPress: Полное Сравнение

При выборе платформы для разработки веб-приложений или сайтов, разработчики часто сталкиваются с дилеммой между фреймворком Laravel и CMS WordPress. Оба инструмента популярны, но они предназначены для разных целей и имеют свои плюсы и минусы. В этой статье мы подробно разберем отличия между Laravel и WordPress, их сильные и слабые стороны, чтобы помочь вам сделать осознанный выбор.

Laravel vs WordPress: Что Выбрать для Веб-Разработки? Laravel, Wordpress, Cms, Framework, Веб-разработка, PHP, Mvc, Блог, Плагин, Тема, Настройка, Безопасность, Производительность, IT, Длиннопост

Что такое WordPress?

WordPress — это система управления контентом (CMS), которая была создана для упрощения создания и управления сайтами. В первую очередь она предназначена для блогов, новостных порталов и контентных веб-ресурсов. Благодаря своей простоте и расширяемости WordPress стал одной из самых популярных платформ для создания сайтов в мире.

Что такое Laravel?

Laravel — это PHP-фреймворк, предназначенный для создания веб-приложений. Это мощный инструмент для разработчиков, которые хотят построить сложные, высокоэффективные веб-приложения с минимальными затратами на рутину разработки. Laravel предоставляет набор инструментов и библиотек для разработки гибких и масштабируемых решений.

Основные Отличия Laravel и WordPress

  1. Назначение

    • WordPress — это готовая система для создания сайтов, в первую очередь контентных. Отлично подходит для блогов, новостных сайтов, небольших интернет-магазинов и порталов с большим количеством контента.

    • Laravel — это фреймворк для разработки веб-приложений с нуля. Laravel больше подходит для создания кастомных веб-приложений, корпоративных сайтов, сложных систем с уникальной логикой и API.

  2. Архитектура

    • WordPress имеет строгую архитектуру и набор предустановленных функций, которые можно расширять с помощью плагинов. Но эта система не предназначена для сложных приложений с уникальной бизнес-логикой.

    • Laravel построен на архитектуре MVC (Model-View-Controller), что делает его более гибким и структурированным для разработки масштабируемых приложений. Это позволяет разделить логику приложения, пользовательский интерфейс и работу с данными.

  3. Настраиваемость

    • WordPress предлагает множество готовых тем и плагинов, которые позволяют быстро настроить сайт. Однако сложные модификации могут быть ограничены рамками CMS.

    • Laravel предоставляет разработчикам полную свободу в создании функционала. Вы сами решаете, как строить логику и интерфейсы приложения, что делает его идеальным для создания нестандартных решений.

  4. Управление контентом

    • WordPress создан для контентных сайтов и отлично справляется с управлением статьями, страницами, медиафайлами. Встроенные инструменты для SEO и публикации контента позволяют легко управлять сайтом без глубоких знаний программирования.

    • Laravel не имеет встроенной системы управления контентом. Для этого нужно либо разрабатывать собственные решения, либо интегрировать сторонние пакеты.

  5. Безопасность

    • WordPress часто становится целью хакеров из-за своей популярности и большого количества плагинов, которые могут содержать уязвимости. Регулярное обновление плагинов и ядра WordPress — необходимая мера для защиты сайта.

    • Laravel предлагает встроенные инструменты для защиты: CSRF-защита, SQL-инъекции, защита от XSS-атак. Фреймворк автоматически внедряет лучшие практики безопасности, но это требует от разработчика более глубоких знаний.

Плюсы и Минусы WordPress

Плюсы:

  • Простота использования: Не требует глубоких знаний программирования. Даже новички могут создать сайт с помощью тем и плагинов.

  • Большое сообщество: Огромное количество плагинов и тем для расширения функционала.

  • SEO-дружелюбность: Встроенные инструменты для оптимизации сайта под поисковые системы.

  • Быстрое развертывание: Можно быстро запустить сайт без необходимости программирования.

Минусы:

  • Ограниченная гибкость: Подходит не для всех типов проектов. При сложных запросах может потребоваться разработка кастомных плагинов.

  • Проблемы с безопасностью: Из-за популярности CMS часто становится целью атак.

  • Производительность: Без оптимизаций и использования кэширования сайты могут быть медленными, особенно с большим количеством плагинов.

Плюсы и Минусы Laravel

Плюсы:

  • Гибкость: Можно создать любые веб-приложения, от простых до высоконагруженных.

  • Архитектура MVC: Легкость масштабирования и поддержки приложений.

  • Безопасность: Встроенные механизмы защиты от наиболее распространенных веб-угроз.

  • Активное сообщество: Laravel имеет большое и активное сообщество разработчиков, которые поддерживают и улучшают фреймворк.

Минусы:

  • Требует знаний программирования: Для работы с Laravel необходимо иметь опыт разработки.

  • Нет готовой CMS: Для управления контентом нужно либо разрабатывать решения самостоятельно, либо использовать сторонние пакеты.

  • Долгое развертывание: В отличие от WordPress, развертывание приложения на Laravel требует больше времени и усилий.

Какой инструмент выбрать?

Если ваша цель — быстро создать контентный сайт, блог, портфолио или небольшой интернет-магазин, то WordPress будет отличным выбором. Его простота и огромное количество готовых решений позволят вам начать работу в кратчайшие сроки.

Однако, если вы разрабатываете сложное веб-приложение, интернет-платформу с уникальной логикой или API, то Laravel — это идеальный инструмент. Он предоставляет все необходимые инструменты для гибкой и безопасной разработки с нуля.

Заключение

И Laravel, и WordPress — мощные инструменты, каждый из которых предназначен для своих задач. WordPress проще в освоении и удобен для контентных сайтов, в то время как Laravel — это выбор для разработчиков, которым требуется гибкость и масштабируемость. Выбор зависит от ваших целей, навыков и требований к проекту.

Показать полностью 1
Laravel Wordpress Cms Framework Веб-разработка PHP Mvc Блог Плагин Тема Настройка Безопасность Производительность IT Длиннопост
3
pavlo.dev
pavlo.dev
8 месяцев назад

Как я в детстве организовал себе бесплатный интернет, когда нужно было платить 10 центов за каждый мегабайт?⁠⁠

Всем привет 👋

Сегодня расскажу Вам историю своего детства, как я в то время "сломал систему" и организовал себе бесплатный интернет.

Дело было когда мне было около 12-13 лет. Это был примерно 2005-2006 год. В это время относительно недавно появился выход в интернет в моём городе, мои родители подключились к нему. Это была корпоративная Локальная сеть с возможностью выхода в интернет.

В то время безлимитного интернета не было, и нужно было платить за каждый мегабайт. Стоимость в то время составляла 0.4 грн за мегабайт, по сути 10 центов.

В чем особенность моего интернет провайдера в то время? Раз это локальная сеть, то весь трафик внутри сети - не тарифицируется, и по сути не ограничен, за него платить не нужно (только абонентскую плату).

В то время я уже увлекался вопросом разработки сайтов, изучал как это устроено и делал мелкие проекты публикуя их в интернете. И тут наш интернет провайдер объявил о новой фишке - он создал свой хостинг на котором каждый участник локальной сети может бесплатно опубликовать свой сайт в интернете, при чем особенность в том - что мы к этому хостинг серверу подключаемся из локальной сети, соответственно не платим за это деньги.

Мне пришла гениальная идея, а что если сделать сайт, в который я смогу вставить ссылку на файл который мне нужно скачать (из интернета), и сайт скачает этот файл и сохранит на хостинг провайдере, и я по локальной сети подключившись к нему по FTP смогу выкачать этот файл. Сразу же реализовал эту штуку, как только пришла эта идея, и всё получилось! Теперь я смог выкачивать фильмы, музыку, и так далее с интернета - совершенно бесплатно.

Возникла мысль, а как было бы классно если бы я мог и по интернету лазить бесплатно, что бы искать файлы. И тут в интернете я наткнулся на готовый скрипт HTTP Proxy анонимайзера, суть в том что по сути это сайт внутри которого мы вставляем ссылку на сайт в интернете - и он сам скачивает страницы и отображает нам, заменяя в нём ссылки - что бы все переходы были в рамках анонимайзера.

Поставил этот движок и начал бесплатно серчить интернет.

Как это всё прикрылось?

Моей радости не было предела, я смог бесплатно лазить по интернету, скачивать файлы, при чем на огромной скорости. Но халява долгой не бывает.

Скрипт анонимайзера который я поставил был очень кривой и косой, и создавал кучу ошибок на сервере которые писались во внутренние логи сервера. За час работы в интернете собирался лог на 1-2 гигабайта ошибок. Естественно владельцы хостинг провайдера это заметили, и просекли фишку, и на сервере установили ограничения на скорость и трафик - а меня заблокировали.

Какие у Вас были интересные истории связанные с компьютерами с Вашего детства?

Показать полностью
[моё] Программист Разработчики PHP Халява Детство Текст Воспоминания из детства
20
Mr.Ducks
Mr.Ducks
8 месяцев назад
Серия PHP и веб-разработка: полезные руководства и совет

Генераторы в PHP: Интерактивное создание последовательностей чисел⁠⁠

В этой статье мы разберем интересную возможность PHP — использование генераторов. Эта концепция не так широко известна среди PHP-разработчиков, как, например, в Python. Но, зная, как правильно использовать генераторы, можно значительно оптимизировать работу с большими наборами данных, сделать код более читаемым и экономить ресурсы сервера. Мы рассмотрим это на практическом примере, где создадим генератор чисел и интегрируем его с HTML-формой, чтобы пользователь мог взаимодействовать с программой прямо через браузер.

Генераторы в PHP: Интерактивное создание последовательностей чисел PHP, Генераторы, Веб-разработка, Обработка данных, IT, Длиннопост

Что такое генераторы?

Генераторы в PHP — это специальный вид функций, которые возвращают значения по мере их необходимости, используя ключевое слово yield. Это означает, что вместо того, чтобы возвращать все данные сразу (как делает обычная функция), генератор возвращает значения "лениво" — по одному за раз, когда это необходимо. Это позволяет эффективно работать с большими объемами данных, не загружая их все в память сразу.

Преимущества генераторов

  • Экономия памяти: Генератор не хранит все значения в памяти, а вычисляет и возвращает их по мере необходимости.

  • Читаемый и компактный код: Использование генераторов упрощает логику работы с итераторами и делает код проще.

  • Легкость работы с большими данными: Генераторы подходят для обработки больших объемов данных без перегрузки памяти сервера.

Пример генератора

Давайте начнем с простого примера функции-генератора, которая генерирует последовательность чисел:

<?php

// Функция-генератор чисел от 0 до указанного предела

function numberGenerator($limit) {

for ($i = 0; $i < $limit; $i++) {

yield $i;

}

}

// Использование генератора

$generator = numberGenerator(5);

foreach ($generator as $number) {

echo $number . "\n"; // выводит 0, 1, 2, 3, 4

}

?>

В этой функции используется цикл for, который генерирует числа от 0 до указанного предела, используя ключевое слово yield. Каждый раз, когда вызывается метод next() итератора (неявно через foreach), генератор возвращает следующее значение, а затем приостанавливается до следующего вызова.

Пример с HTML-формой

Теперь давайте сделаем этот пример интерактивным, добавив HTML-форму, где пользователь может вводить число, а генератор будет строить последовательность до этого числа. Мы также научимся передавать данные формы в PHP через метод POST и работать с этими данными.

Полный HTML + PHP пример

Вот код, который объединяет PHP-генератор с HTML-формой для интерактивного ввода чисел:

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Интерактивный генератор чисел на PHP</title>

</head>

<body>

<h1>Генератор чисел на PHP</h1>

<!-- Форма для ввода предела генерации чисел -->

<form method="post" action="">

<label for="limit">Введите предел чисел:</label>

<input type="number" id="limit" name="limit" required min="1">

<button type="submit">Сгенерировать</button>

</form>

<ul>

<?php

// Проверяем, была ли отправлена форма и введено ли число

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['limit'])) {

$limit = intval($_POST['limit']); // получаем введённое значение и преобразуем в целое число

// Функция-генератор

function numberGenerator($limit) {

for ($i = 0; $i < $limit; $i++) {

yield $i;

}

}

// Используем генератор для вывода чисел

$generator = numberGenerator($limit);

foreach ($generator as $number) {

echo "<li>Число: $number</li>";

}

}

?>

</ul>

</body>

</html>

Подробное объяснение кода

1. HTML-форма

Форма включает одно текстовое поле для ввода числа и кнопку для отправки формы:

<form method="post" action="">

<label for="limit">Введите предел чисел:</label>

<input type="number" id="limit" name="limit" required min="1">

<button type="submit">Сгенерировать</button>

</form>

  • Поле ввода input type="number" принимает только числовые значения. Мы также добавили атрибут required, чтобы пользователю было необходимо ввести число перед отправкой формы.

  • После нажатия кнопки "Сгенерировать", форма отправляется на сервер с методом POST. Важно заметить, что атрибут action пуст — это значит, что форма будет отправлена на ту же страницу.

2. Получение и обработка данных из формы

Когда форма отправляется, PHP получает данные через глобальный массив $_POST. В нашем примере мы проверяем, был ли отправлен запрос методом POST и существует ли в массиве $_POST значение limit:

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['limit'])) {

$limit = intval($_POST['limit']); // Преобразуем введенное значение в целое число

intval() используется для приведения введенного значения к целому числу, чтобы гарантировать, что оно корректно.

3. Генератор

После получения введенного значения (предела) мы вызываем функцию-генератор, которая генерирует числа от 0 до предела, указанного пользователем:

function numberGenerator($limit) {

for ($i = 0; $i < $limit; $i++) {

yield $i;

}

}

Генератор позволяет нам постепенно возвращать числа без необходимости хранить их все в памяти.

4. Вывод чисел на страницу

Мы используем цикл foreach, чтобы итерировать через числа, сгенерированные функцией numberGenerator(), и выводим каждое число в виде элемента списка HTML:

$generator = numberGenerator($limit);

foreach ($generator as $number) {

echo "<li>Число: $number</li>";

}

Как это работает?

  1. Пользователь открывает страницу и видит форму для ввода числа.

  2. Пользователь вводит число, например, "10", и нажимает кнопку "Сгенерировать".

  3. PHP получает это число через POST-запрос, запускает генератор, который генерирует последовательность от 0 до 9, и выводит результаты в виде списка на той же странице.

Заключение

Использование генераторов в PHP — это мощный способ работать с большими данными и итерациями, особенно когда нам не нужно сразу загружать все значения в память. В данной статье мы рассмотрели простой, но показательный пример использования генераторов в реальном проекте: генератор чисел с динамическим взаимодействием через HTML-форму. Такой подход позволяет комбинировать возможности PHP и HTML для создания интерактивных и производительных веб-приложений.

Генераторы в PHP — это несложный, но малоизвестный инструмент, который может значительно облегчить жизнь разработчикам при работе с большими объемами данных. Теперь у тебя есть как теоретическое понимание генераторов, так и готовый пример, который можно использовать в проектах!

Показать полностью 1
PHP Генераторы Веб-разработка Обработка данных IT Длиннопост
0
Mr.Ducks
Mr.Ducks
8 месяцев назад
Серия PHP и веб-разработка: полезные руководства и совет

Регистрация на PHP с использованием PDO и MySQL: Полное Руководство⁠⁠

В современном веб-разработке регистрация пользователей — это важная и часто встречающаяся задача. В этой статье мы рассмотрим, как создать простую систему регистрации с использованием HTML-формы, PHP для обработки данных, подключение к базе данных через PDO и работу с MySQL.

Мы также обсудим, почему важно использовать PDO для безопасности, как хэшировать пароли, и что такое подготовленные выражения.

Регистрация на PHP с использованием PDO и MySQL: Полное Руководство PHP, Mysql, Регистрация, HTML, Безопасность, База данных, Веб-разработка, Персональные данные, IT, Программа, Длиннопост

Шаг 1: Создание HTML-формы для регистрации

Начнем с базовой HTML-формы, которая будет собирать имя пользователя, электронную почту и пароль. Эта форма отправляет данные методом POST на PHP-скрипт (register.php), который будет обрабатывать информацию.

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Регистрация</title>

</head>

<body>

<h2>Форма регистрации</h2>

<form action="register.php" method="post">

<label for="username">Имя пользователя:</label><br>

<input type="text" id="username" name="username" required><br><br>

<label for="email">Email:</label><br>

<input type="email" id="email" name="email" required><br><br>

<label for="password">Пароль:</label><br>

<input type="password" id="password" name="password" required><br><br>

<input type="submit" value="Зарегистрироваться">

</form>

</body>

</html>

Шаг 2: PHP-скрипт для обработки данных с использованием PDO

Теперь перейдем к созданию PHP-скрипта (register.php), который будет принимать данные из формы и сохранять их в базе данных MySQL. Мы будем использовать PDO (PHP Data Objects) для подключения и работы с базой данных, что обеспечивает безопасность и удобство работы.

<?php

// Настройки подключения к базе данных

$host = 'localhost'; // Имя хоста

$dbname = 'my_database'; // Имя базы данных

$username_db = 'root'; // Имя пользователя БД

$password_db = ''; // Пароль БД (если есть)

// Подключение к базе данных через PDO

try {

$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8";

$pdo = new PDO($dsn, $username_db, $password_db, [

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // Включаем обработку ошибок

PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // Массивы по умолчанию

PDO::ATTR_EMULATE_PREPARES => false, // Отключаем эмуляцию подготовленных выражений

]);

} catch (PDOException $e) {

die("Ошибка подключения к базе данных: " . $e->getMessage());

}

// Проверка отправки формы

if ($_SERVER["REQUEST_METHOD"] == "POST") {

// Получаем данные из формы

$username = $_POST['username'];

$email = $_POST['email'];

$password = password_hash($_POST['password'], PASSWORD_DEFAULT); // Хэшируем пароль

// SQL-запрос для вставки данных

$sql = "INSERT INTO users (username, email, password) VALUES (:username, :email, :password)";

// Подготовка и выполнение запроса через PDO

try {

$stmt = $pdo->prepare($sql);

$stmt->execute([

':username' => $username,

':email' => $email,

':password' => $password

]);

echo "Регистрация прошла успешно!";

} catch (PDOException $e) {

echo "Ошибка при выполнении запроса: " . $e->getMessage();

}

}

// Закрытие соединения (необязательно в PDO, но можно сделать для аккуратности)

$pdo = null;

?>

Пояснение к коду:

  • Подключение через PDO: Мы подключаемся к базе данных через PDO. Этот способ работы с базой данных считается безопасным, так как поддерживает подготовленные выражения, защищающие от SQL-инъекций.

  • Хэширование пароля: Использование функции password_hash() позволяет безопасно хранить пароли, применяя современный алгоритм хэширования. Это значительно увеличивает уровень защиты пользовательских данных.

  • Подготовленные запросы: Мы используем подготовленные запросы для передачи данных в базу. Это защищает от SQL-инъекций, так как данные передаются отдельно от структуры SQL-запроса.

Шаг 3: Создание таблицы в MySQL

Перед тем, как вы сможете зарегистрировать пользователей, вам нужно создать таблицу для хранения информации о них. Вот пример SQL-запроса для создания таблицы users в базе данных:

CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(50) NOT NULL,

email VARCHAR(100) NOT NULL,

password VARCHAR(255) NOT NULL,

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

Пояснение к таблице:

  • id: Автоматически увеличивающийся идентификатор для каждого пользователя.

  • username: Имя пользователя, которое должно быть уникальным и не пустым.

  • email: Электронная почта, которая также должна быть уникальной и валидной.

  • password: Хэшированный пароль пользователя.

  • created_at: Автоматическая отметка времени, когда пользователь зарегистрировался.

Преимущества использования PDO:

  1. Безопасность: PDO поддерживает подготовленные выражения, которые защищают от SQL-инъекций, одной из наиболее распространенных атак на базы данных.

  2. Кросс-базовая поддержка: PDO позволяет легко менять драйверы для работы с разными базами данных (например, MySQL, PostgreSQL, SQLite).

  3. Обработка ошибок: PDO легко настраивается для выброса исключений в случае ошибок, что помогает отлавливать и решать проблемы на ранних стадиях.

Хэширование паролей в PHP

Хэширование пароля с помощью password_hash() делает вашу систему более безопасной. Это важно, так как хранение паролей в открытом виде крайне небезопасно. При хэшировании создается "отпечаток" пароля, который невозможно восстановить до оригинала, даже если данные будут скомпрометированы.

$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

Для проверки пароля при авторизации можно использовать функцию password_verify().

Заключение

Создание системы регистрации с использованием PHP и PDO — это простой, но мощный способ начать работу с безопасной аутентификацией пользователей. Мы рассмотрели основные аспекты: создание формы, работу с базой данных через PDO, использование подготовленных запросов для защиты от SQL-инъекций, а также хэширование паролей.

Этот пример является хорошей основой для построения более сложных систем аутентификации, где можно добавлять подтверждение по электронной почте, двухфакторную аутентификацию и другие меры безопасности.

Убедитесь, что ваш сервер настроен на работу с PHP и MySQL, а также что конфигурация базы данных соответствует вашим требованиям.

Показать полностью 1
PHP Mysql Регистрация HTML Безопасность База данных Веб-разработка Персональные данные IT Программа Длиннопост
11
user9638954
8 месяцев назад

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году?⁠⁠

Казалось бы, на дворе 2024 год, а пользователи продолжают стойко преодолевать тяготы (читай угадывать где изображены светофоры), которые им выставляет корпорация Гугл в виде капчи и хвастаться у кого больше score, чтобы преодолеть рекапчу посложнее. Тем не менее, по заявлениям некоторых оптимизаторов, капчи уже давно себя изжили и не работают так эффективно, как хотелось бы изначально их разработчикам. Какая же самая наиболее популярная капча современности? Это reCAPTCHA.

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Бесспорно, reCAPTCHA V2, reCAPTCHA V3 и т.п. reCAPTCHA популярнее остальных видов капч. Создана reCAPTCHA была компанией Гугл в далеком 2007 году. Прошло уже много лет с момента появления первой reCAPTCHA, но она продолжает удерживать пальму первенства, периодически немного сдавая позиции конкурентам и отвоевывая их обратно. Но еще ни разу reCAPTCHA не заняла даже 2 место по популярности, несмотря на все ее несовершенство перед нейросетями.

По поводу несовершенства, также есть вопросики. Чего стоит нашумевший доклад компании Open AI (страница 15), в котором они признали, что нейросеть для того, чтобы обойти капчу обратилась к человеку (обманула его, кстати), чтобы это человек помог ей зарегистрироваться на сервисе распознавания капчи 2капча дляобхода капчи. Слишком много капч в одном слове, не кажется? Сути это не меняет — нейросеть не справилась с простейшей задачей, а значит у человечества все еще есть шанс!

Вернемся к статье! Было огромное количество попыток сделать «убийцу рекапчи», какие-то были менее успешными, какие-то только выглядели как угроза reCAPTCHA, а на деле оказывались пшиком, но факт остается фактом, желание конкурентов сделать что-то лучше и надежнее reCAPTCHA демонстрирует ее популярность.

Виды reCAPTCHA

  • reCAPTCHA V1

  • reCAPTCHA V2

  • reCAPTCHA V3

Каждая из них – это улучшенная версия предыдущей reCAPTCHA. Давайте разберемся подробнее почему и чем они отличаются:

Что такое и как распознать reCAPTCHA V1? Очень просто!

Самая первая версия капчи reCAPTCHA V1 представляла собой отрывки текста из отсканированных книг, ее еще называли (и до сих пор называют) простая капча или текстовая капча. Это была достаточно примитивная капча, сильно навязчивая в определенных случаях и раздражающей пользователей.

К слову, сервисы распознавания капчи решают такую reCAPTCHA по самому минимальному тарифу, и формируют маркетинговые предложения, демонстрируя нереально низкие цены на распознавания, также, именно благодаря текстовой reCAPTCHA (правда я ее очень давно уже не встречал, может где-нибудь в даркнете осталась, кто знает)

Юзеру предлагалось ввести текст в специальном окне, сейчас что-то подобное еще можно встретить на старых ресурсах, но на нормальных площадках уже никто не использует reCAPTCHA V1.

ReCAPTCHA V1 была первой версией, представленной в 2007 году. Она использовала искаженный текст из отсканированных книг, который пользователи должны были ввести, чтобы доказать, что они не боты. Эта система использовала ввод пользователей для оцифровки книг, газет и старых радиошоу и конечно же, для обучения своих моделей (не тех, которые на модных показах дефилируют, а тех, которые обучаются при помощи машинного обучения).

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Именно в период, когда Гугл внедрил первую версию reCAPTCHA начали появляться автоматические решатели капчи, которые без особого труда обходили текстовую капчу. Сперва их обучали на массиве и после чего запускали в работу, со временем такие солверы делали все меньше и меньше ошибок и экономили владельцу кучу времени и средств.

С текстовой капчей хорошо справляются всевозможные приложения для распознования капчи, например в Гугл Хроме или в Мозиле.

reCAPTCHA v2 — Как распознать картинки? Где текст?

Все меняется и развивается, и научившись практически бесплатно обходить текстовые капчи автоматизаторы, уже откровенно насмехались над компанией Гугл. То есть, то, что изначально было создано для защиты поменяла свою функцию и уже выступала в качестве внешнего раздражителя для обычных посетителей сайта.

Наконец, после осознания того, что текстовые капчи больше не работают, была создана новая версия reCAPTCHA V2, которая была призвана убрать раздражение юзеров от навязчивости первой версии, повысить безопасность при защите проектов и в целом, улучшить пользовательский опыт.

Вторая версия reCAPTCHA представляет собой пустое поле, при клике по которому появляется галочка, что капча пройдена, либо выскакивает окно со светофорами, которые требовалось найти. Светофоры, это конечно же метафора, вместо светофоров нужно было искать различные предметы. Уверен, вы все понимаете о чем идет речь.

Флажок («Я не робот»): Самый простой вид проверки, где пользователю нужно просто нажать на флажок. Система анализирует поведение пользователя, чтобы определить, человек это или бот. И если у системы не возникают вопросы — вы проходите дальше, а вот если вопросики к вам есть (например ваши куки показались системе слишком подозрительными, так как вы много раз безуспешно выполняли одно и тоже действие на сайте) вас просят потыкать картинки.

Задачи с изображениями: Если система сомневается, она предлагает пользователям выбрать определенные объекты на изображениях (например, «Выберите все изображения с светофорами»). И чем меньше к вам доверия, тем больше будет таких картинок и они будут дольше прогружаться перед тем, как покажутся вам.

Смысл в таком разделении достаточно прост — по задумке Гугл, обычный пользователь интернета, не посещает сомнительных ресурсов, не обращается к одному и тому же ресурсу много раз (как это делают неумные боты) и он просто нажмет на флажок, ну или по быстрому решит пару картинок. А вот бота то, погоняют как следует.

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Что касается противоположного лагеря то с появлением reCAPTCHA V2 старые способы уже не работали, и многие авторешатели прекратили нормально функционировать, рынок начал перестраиваться и продолжает развиваться даже сейчас, так как появляются все новые и новые параметры, которые учитываются при решении reCAPTCHA.

В то время рынок реально просел, большинство парсеров перестало нормально работать, это можно сравнить если не с появлением танков в Первой Мировой войне, то, как минимум с появлением мобильных телефонов. Эта reCAPTCHA полностью поменяла правила игры. И кстати, научно доказанный факт (это не точно), после нескольких бессонных ночей первыми способ обхода второй версии рекапчи выкатила 2captcha, ну а после них уже все остальные подхватили способ и рынок снова ожил.

Несмотря на новизну, вторая версия также сильно раздражала обычных людей и негатив никуда не делся. Система была несовершенна, что побудило компанию Гугл идти вперед и создавать новые продукты. Но не сразу. Какое то время картинки осели на рынке и плотно засели в сознании людей, и пресловутые светофоры уже стали чем-то вроде Xerox в нише копировальных аппаратов (вы ведь знаете эту историю, правда?).

Что такое и как обойти Гугл reCAPTCHA v3? То что невидно распознать нельзя... Или все таки можно?

Решение не раздражать пользователя преследовало компанию Гугл на всех этапах создания reCAPTCHA, но как этого добиться? Путем скрытия reCAPTCHA, так третья версия стала невидимой. Она работает в фоновом режиме, непрерывно отслеживая действия пользователя на сайте и присваивая им оценку риска (от 0.0 до 1.0) на основе их поведения.

Вот тот самый score который я упоминал в самом начале текста. То, чем хитрые боты хвастаются в своих ботокурилках и на совместных ботокорпоративах, а может даже боты мальчики отправляют ботам девочкам в личку score пики, кто знает? В любом случае — этот показатель присваивается каждому пользователю и по различным метрикам вычисляется его значение.

Чем выше score тем быстрее пользователь проходит reCAPTCHA и тем меньше у него проблем. Чем ниже.. Ну, тут думаю понятно.

С появлением новой версии рекапчи революции не случилось, но нервов она тоже подпортила сервисам распознавания капчи. Способ обхода reCAPTCHA V3 был найден, и в для этого лучше всего работают именно сервисы с ручным распознаванием капчи, так как у живого человека score всегда будет лучше!

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Веб-сайты могут устанавливать пороги для оценок риска, определяя уровень взаимодействия или проверки в зависимости от предполагаемого риска. Если владелец хочет максимально улучшить пользовательский опыт, он выставляет менее высокий score и наоборот. Таким образом компания Гугл предоставила владельцам выбор между пользовательским опытом и защитой, найти баланс в этом случае не так и сложно.

Кто эти люди, которые практикуют обход reCAPTCHA и для чего им это нужно?

Зачем в принципе нужно обходить reCAPTCHA? Если ты рядовой пользователь и просто посещаешь веб ресурс, ты можешь решить эту проблему самостоятельно, но другой вопрос, когда тебе необходимо анализировать и тестировать системы своего ресурса на устойчивость к нагрузкам либо для улучшения пользовательского опыта, или для автоматизации рутинных задач.

Капча встречается при парсинге больших объемов данных, например Амазона или какого-нибудь Озона с Вайлдбериз.

Большой объем капчи решить вручную не получится. Для этого разработчики создают всевозможные программы, модули, библиотеки, скрипты и тп для того чтобы обойти reCAPTCHA. Выкладывают свои наработки на githab и другие площадки. Я рассмотрел три основных языка программирования, которые считаются наиболее популярными для автоматизации рутинных задач и собрал топ модулей для распознавания капчи, а также описал как решить reCAPTCHA вручную (без использования готовых модулей).

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Python и reCAPTCHA, как решать reCAPTCHA на python?

Наиболее популярный язык программирования, безусловно Python, код для этого языка программирования ищут в 5 из 10 случаев, когда гуглят «Как обойти рекапчу» в интернете (не учитывая запросов, которые содержат приставку python, типа таких – «как обойти рекапчу на питоне» и тп.

Но если копнуть чуть глубже - почему Питон такой популярный? Вероятно причина в том, что он не сильно сложный с точки зрения изучения и тут очень много джунов и тех, кто еще не дорос до джуна. А если много новичков и не профессионалов - значит много вопросов. И значит распознавания капчи может стать достаточно тривиальной задачей. Именно по этой причине я собрал несколько уже готовых модулей, которые нужно просто подключить в исполняемом файле.

Это не топ модулей, которые являются самым популярными во все времена - это просто пять модулей, которые по различным причинам находятся в поисковой выдаче на топовых позициях. Да, подобных модулей куча, но их нет в топе, а значит их нет в этой статье. Тестирование производительности, сравнение и т.п. не проводилось. Я просто попробовал их на работоспособность и на момент публикации статьи они работали.

Я выделил следующие популярные модули, с помощью которых можно распознать reCAPTCHA (кстати, с помощью всех этих модулей можно распознать и другие типы капч):

  • 2captcha-python

  • 2captcha-solver

  • captchatools

  • twocaptcha-extension-python

  • Captcha-Tools

Модуль для обхода reCAPTCHA на Python 2captcha

Официальный модуль от сервиса распознавания капчи 2капча, разработан для легкой интеграции с их АПИ, модуль обладает расширенным функционалом и поддерживает настройку прокси. Модуль поддерживается и регулярно обновляется, может быть использован при парсинге веб-ресурсов и автоматизации.

Сервис идеален для пользователей, которые делают упор в распознавании капчи на надежность, а также кому требуется официальная поддержка от сервиса 2капча.

Может это и лишнее, но я уточню, что каждый модуль, представленный в этой статье интегрирует сторонний платный сервис, учитывайте это.

Модуль поддерживает асинхронные операции.

Модуль для распознавания Google reCAPTCHA для Питон

Модуль для решения reCAPTCHA и некоторых других популярных капч (ReCaptcha (v2, v3), FunCaptcha и hCaptcha). Основное отличие его от предыдущего модуля в том, что он более узконаправленный (поддерживает меньшее количество капч) и может менее гибко реагировать на обновления со стороны reCAPTCHA, по сравнению с предыдущим официальным модулем.

2Captcha-solver поддерживает настройку прокси и особенно полезен для задач, требующих высокой производительности, благодаря поддержке асинхронных операций, что позволяет одновременно решать несколько reCAPTCHA.

Модуль написанный под Python — решатель Рекапчи

Многофункциональный модуль, основной упор которого делается на поддержку нескольких сервисов распознавания капчи. Функционал модуля примерно похож на предыдущие два, он поддерживает настройку прокси и асинхронные операции.

Исходя из того, что модуль позволяет интегрировать распознавание капчи через несколько сервисов, то у него есть уникальная функция — перебор сервисов. То есть, вы можете использовать один сервис в качестве остального, а другие в качестве резервных, и когда у вас, к примеру, закончаться средства на основном сервисе, или если основной сервис не справился с задачей, капча уйдет в резервный и будет решена. Таким образом ваш скрипт будет более автоматизированным и не будет зависить от стабильности одного конкретного сервиса.

Модуль для распознавания reCAPTCHA на Python (для Селениума)

Это узконаправленный модуль, который используется для легкой интеграции с Selenium и Playwright, и поддерживает все виды reCAPTCHA.

Модуль можно использовать без необходимости установки дополнительных расширений и для начала потребуется только ключ АПИ.

Его главное отличие от предыдущих модулей — то что twocaptcha-extension-python будет сложно использовать для вопросов автоматизации, где не используется Selenium или Playwright, так как используется исключительно для перечисленных сервисов.

Модуль для распознавания reCAPTCHA V2 и V3 на Питон

Модуль который напоминает по функционалу captchatools, и его можно назвать аналогом указанного сервиса. То есть, вы можете использовать один из них на выбор.

Все характеристики совпадают: поддержка нескольких сервисов, перебор сервисов в процессе распознавания капчи, асинхронные операции, настройка прокси. Все это есть и тут. Различается лишь разработчик.

Ну и предположение от меня, скорее всего оба эти сервиса будут чуть медленнее реагировать на изменения, которые происходят в сервисах распознавания капчи и которые делают разработчики капч, чем официальные модули.

Хочется также отметить, что все перечисленные сервисы (а не только Twocaptcha-extension-python) могут использоваться вместе с Selenium и Playwright, отличие будет лишь в подключении и синхронизации.

Как обойти reCAPTCHA используя Python (пример кода)

Если не доверяете никаким сторонним модулям, я подготовил максимально универсальный код, который можно с небольшими доработками вставить в ваш скрипт, написанный на Питоне и решать reCAPTCHA автоматически. Вероятно под конкретный проект потребуется доработать этот код, но в целом - вариант рабочий и учитывает все параметры указанные в АПИ.

Вот сам код:

Код на Питоне.

Однако, перед тем как использовать предоставленный скрипт, внимательно ознакомьтесь с рекомендациями сервиса, по распознаванию того или иного типа reCAPTCHA, чтобы иметь представление о том, как работает этот код.

Также, не забудьте подставить в коде ваш ключ АПИ и конечно же, установить необходимые модули.

JavaScript и reCAPTCHA, как распознать reCAPTCHA на javascript с помощью модулей

Второй по популярности язык, для которого пользователи ищут способы обхода reCAPTCHA – node js, примерно 3 из 10 запросов по обходу reCAPTCHA приходятся на этот язык программирования.

Тут ситуация точно такая же, как и с предыдущим языком. Не рассматривайте этот список, как список именно лучших в своем классе модулей. Только популярные у поисковых машин инструменты, не более того. Никаких завышенных ожиданий, прошу!

Как и в случае с Python проще всего распознать reCAPTCHA через специальные модули, тем более, что сервисы распознавания капчи заинтересованы в упрощении работы для своих клиентов и многие создают и поддерживают такие модули, вот список наиболее популярных из них.

  • 2captcha

  • 2captcha-javascript

  • captcha-solver

  • multi-captcha-solver-adapter

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Модуль для распознавания reCAPTCHA с использованием Javascript

Официальный модуль для node js от сервиса распознавания капчи 2капча, поддерживает большинство известных типов капчи, в том числе reCAPTCHA. Важное отличие этого модуля от остальных — поддержка TypeScript что делает его удобным для разработки различных приложений.

Все базовые настройки, включая асинхронные операции, настройка прокси и т. п в модуле присутствуют, что делают его универсальным модулем для решения большинства типов капчи. Ну и факт того, что модуль создан сервисом 2капча позволяет сделать вывод о его надежности.

Javascript модуль 2captcha для обхода reCAPTCHA

Также является официальным модулем для распознавания основных видов капчи от сервиса 2капча и поддерживает все те же настройки, что и предыдущий модуль (за исключение поддержки TypeScript), но мне показалось, что он создан больше с упором на простоту интеграции и быстрое начало работы.

Он более легкий, чем предыдущий и он как и его предшественник решает главную задачу — обходит reCAPTCHA. Так что если вам просто необходимо, чтобы ваш скрипт (программа), написанная на node js решала reCAPTCHA, используйте этот модуль, а если нужна более глубокая интеграция, присмотритесь к предыдущему модулю.

Модуль для обхода Рекапчи на Javascript

Модуль заточенный для интеграции с Puppeteer и позволяет решать reCAPTCHA и другие популярные виды капчи.

Помимо того, что этот модуль заточен под Puppeteer, он предоставляет возможность выбора провайдера, решающего капчу, что также позволяет настроить перебор сервисов (как было описано в блоке про модули для Python).

Хочется отметить, что два предыдущих модуля могут быть интегрированы в Puppeteer, но captcha-solver предоставлет решение «из коробки», то есть поставил и забыл, тогда как в случае с 2captcha и 2captcha-javascript может потребоваться ручная обработка результатов или настройка этой обработки.

Javascript модуль чтобы обойти reCAPTCHA

Модуль от сторонних разработчиков, который поддерживает решение reCAPTCHA, а также некоторых других популярных типов капчи. В модуле интегрировано несколько сервисов распознавания капчи, что позволяет настроить перебор сервисов (один сделать главным, а остальные резервными).

Сервис является альтернативой 2captcha и 2captcha-javascript, но возможны задержки в обновлении, так как модуль поддерживается не официальными сервисами, а в остальном функционал у него похож на конкурентов.

Как обойти reCAPTCHA на Node js

Как в случае с Python, для тех, кто не любит уже готовые решения, ниже приведу скрипт для решения капчи с использованием языка программирования node js. Напоминаю, не забудьте установить необходимые модули для работы кода, в том числе:

Пункт Установление модулей для работы кода на Node js 

axios

Установить его можно с помощью такой команды –

команда для установления.

Вот и сам код:

код на Node js

PHP и reCAPTCHA, как распознать reCAPTCHA на php с помощью модулей

И третий по популярности язык, для которого пользователи ищут способ обхода reCAPTCHA — php. Предлагаю начать с модулей, как и в первых двух случаях и закончить кодом. Итак, наиболее популярные модули для решения reCAPTCHA на PHP следующие:

  • 2captcha-php

  • php-captcha-solver

Модуль для обхода reCAPTCHA в Хроме

Этот модуль позволяет легко интегрировать API 2Captcha в ваш PHP-код для решения CAPTCHA. Он поддерживает такие типы CAPTCHA, как ReCaptcha, FunCaptcha, GeeTest, и другие. Модуль предназначен для быстрой настройки и использования, включая поддержку текстовых CAPTCHA и ReCaptcha v3. Он также поддерживает различные методы для работы с изображениями и аудиофайлами.

Как распознать reCAPTCHA используя PHP

Модуль, предоставляющий удобный интерфейс для интеграции с различными CAPTCHA-сервисами, включая 2Captcha. Поддерживает различные типы CAPTCHA, такие как reCAPTCHA и FunCaptcha. Этот модуль ориентирован на легкость использования и быструю настройку.

Фактически, если сравнить два этих модуля, то первый разработан сервисом 2captcha, а второй сообществом разработчиков и оба решают одни и те же задачи и примерно одинаковый набор функционала. Однако, второй модуль может быть менее оперативен в вопросах обновлений, в отличие от официального модуля.

Ну и для тех, кто не привык использовать готовые модули, вот код для интеграции напрямую. Код использует стандартные функции PHP, такие как file_get_contents и json_decode, вот сам код:

Код распознавания reCaptcha на  PHP

Также напоминаю о необходимости заменить некоторые параметры в коде, в частности.

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Таким образом, используя приведенные примеры, вы можете закрыть большую часть вопросов, связанных с распознаванием reCAPTCHA. Можете задавать вопросы в комментариях, если они остались!

Показать полностью 7
Recaptcha Капча Питон PHP Nodejs Javascript Python Программирование Код IT Длиннопост
1
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии