
Research
/Security News
Malicious npm Packages Target WhatsApp Developers with Remote Kill Switch
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
ya-invisible-captcha-client
Advanced tools
Лёгкий клиент для невидимой Яндекс.Каптчи с поддержкой форм и модальных окон. Поддерживает auto-init через data-атрибуты и гибкое встроение в DOM.
Лёгкий клиент для интеграции невидимой Яндекс Smart Captcha с поддержкой автоматической инициализации форм и кастомных сценариев. Написан на TypeScript, поддерживает UMD и ESM модули, подходит для использования в браузере и с современными фреймворками.
data-ya-captcha-form
для автоматической обработки
токенов.ru
, en
, be
, kk
, tt
, uk
, uz
, tr
.Установите пакет через npm:
npm install ya-invisible-captcha-client
Или используйте CDN (UMD):
<script src="https://unpkg.com/ya-invisible-captcha-client@1.0.0/dist/ya-invisible-captcha-client.umd.js"></script>
Добавьте атрибут data-ya-captcha-form
к вашим формам и настройте капчу:
<form action="/submit" data-ya-captcha-form>
<input type="text" name="name" placeholder="Имя" required />
<input type="hidden" name="token" data-ya-captcha-token-input />
<button type="submit">Отправить</button>
</form>
<script src="https://unpkg.com/ya-invisible-captcha-client@1.0.0/dist/ya-invisible-captcha-client.umd.js"></script>
<script>
window.YaInvisibleCaptcha.autoInit({
sitekey: 'ВАШ_SITEKEY',
lang: 'ru',
debug: true,
test: true,
shieldPosition: 'bottom-right',
hideShield: false,
});
</script>
При отправке формы капча автоматически выполнится, токен будет добавлен в скрытое поле token
, и форма отправится.
Для более сложных сценариев используйте класс YaInvisibleCaptcha
напрямую:
<form id="myForm" action="/submit">
<input type="text" name="name" placeholder="Имя" required />
<input type="hidden" name="token" id="captchaToken" />
<button type="submit">Отправить</button>
</form>
<script src="https://unpkg.com/ya-invisible-captcha-client@1.0.0/dist/ya-invisible-captcha-client.umd.js"></script>
<script>
const captcha = new window.YaInvisibleCaptcha({
sitekey: 'ВАШ_SITEKEY',
container: 'captchaToken',
callback: token => {
document.getElementById('captchaToken').value = token;
document.getElementById('myForm').submit();
},
lang: 'ru',
debug: true,
test: true,
});
document.getElementById('myForm').addEventListener('submit', e => {
e.preventDefault();
captcha.execute();
});
</script>
Для форм с валидацией через FormFather:
<form id="form1" data-form-father action="/submit">
<div data-ya-captcha-token-input-wrapper>
<input type="hidden" name="token" data-ya-captcha-token-input required />
</div>
<input type="text" name="name" placeholder="Имя" required data-validate="not-numbers" />
<div class="error-message" data-form-father-error="name"></div>
<button type="submit">Отправить</button>
</form>
<script src="https://unpkg.com/form-father@0.1.3/FormFather.min.js"></script>
<script src="https://unpkg.com/ya-invisible-captcha-client@1.0.0/dist/ya-invisible-captcha-client.umd.js"></script>
<script type="module">
import FormFather from 'form-father';
FormFather.setDefaultParams({
inputSelector: '.input, [data-ya-captcha-token-input]',
inputWrapperSelector: '[data-ya-captcha-token-input-wrapper]',
});
let $lastForm = null;
const captcha = new window.YaInvisibleCaptcha({
sitekey: 'ВАШ_SITEKEY',
callback: token => {
$lastForm.querySelector('[data-ya-captcha-token-input]').value = token;
$lastForm.dispatchEvent(new Event('submit'));
},
lang: 'ru',
debug: true,
test: true,
});
document.querySelectorAll('[data-ya-captcha-token-input-wrapper]').forEach($inputToken => {
$inputToken.showError = () => captcha.execute();
});
document.querySelectorAll('[data-form-father]').forEach(form => {
new FormFather(form, {
onBeforeValidate: () => {
$lastForm = form;
},
});
});
</script>
sitekey
(обязательный): Ключ сайта из консоли Yandex Cloud.callback
(обязательный): Функция, вызываемая с токеном капчи.container
: ID или DOM-элемент контейнера (опционально).invisible
: Использовать невидимую капчу (по умолчанию true
).debug
: Включить отладочные сообщения (по умолчанию false
).lang
: Язык интерфейса (ru
, en
, be
, kk
, tt
, uk
, uz
, tr
, по умолчанию ru
).test
: Режим тестирования (по умолчанию false
).webview
: Запуск в WebView (по умолчанию false
).shieldPosition
: Расположение уведомления (top-left
, center-left
, bottom-left
, top-right
, center-right
,
bottom-right
).hideShield
: Скрыть уведомление (по умолчанию false
).sitekey
(обязательный): Ключ сайта.tokenFieldName
: Имя скрытого поля для токена (по умолчанию token
).debug
, lang
, test
, webview
, shieldPosition
, hideShield
: Аналогично YaCaptchaConfig
.https://smartcaptcha.yandexcloud.net
).form-father@0.1.3
(опционально).> 0.5%
, last 2 versions
, not dead
, not ie <= 11
.Для локальной разработки:
npm install
npm run build
npm run demos
Запустите npm run demos
для тестирования демо-примеров.
Если у вас есть вопросы или проблемы, создайте issue в репозитории.
MIT License
FAQs
Лёгкий клиент для невидимой Яндекс.Каптчи с поддержкой форм и модальных окон. Поддерживает auto-init через data-атрибуты и гибкое встроение в DOM.
We found that ya-invisible-captcha-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.