Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Проверить контент на опасные подстроки landing.repo.checkContent». Вы узнаете экспертные методики работы с landing.repo.checkContent и научитесь избегать типичных ошибок начинающих разработчиков.
Проверить контент на опасные подстроки landing.repo.checkContent
Тут может не хватать некоторых данных — дополним в ближайшее время
- не указаны типы параметров
- не указана обязательность параметров
- отсутствуют примеры
- отсутствует ответ в случае ошибки
> Scope: landing
>
> Кто может выполнять метод: любой пользователь
Метод landing.repo.checkContent проверяет контент на опасные подстроки. К таким относятся onclick="", <iframe> и ряд других. При обычном кейсе использования варианты срабатывания минимальны. Метод используется исключительно для контроля содержимого при регистрации блока.
Входящие параметры и конфигурация метода
| Параметр | Описание | С версии |
|---|---|---|
contentunknown | Содержимое для тестирования. | |
splitterunknown | Необязательный параметр для разделения опасных подстрок. По-умолчанию равен #SANITIZE#. |
Практические примеры использования в коде
- JS
try
{
const response = await $b24.callMethod(
'landing.repo.checkContent',
{
content: '<div style="color: red" onclick="alert(123)"><iframe src="//evil.com"></iframe></div>',
splitter: '#AAA#'
}
);
const result = response.getData().result;
if(result.error())
console.error(result.error());
else
console.info(result);
}
catch(error)
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'landing.repo.checkContent',
[
'content' => '<div style="color: red" onclick="alert(123)"><iframe src="//evil.com"></iframe></div>',
'splitter' => '#AAA#',
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
} else {
echo 'Info: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error checking content: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'landing.repo.checkContent',
{
content: '<div style="color: red" onclick="alert(123)"><iframe src="//evil.com"></iframe></div>',
splitter: '#AAA#'
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.info(result.data());
}
);Ответ в случае успеха
> 200 OK
content:"<div style="color: red" oncl#AAA#ick="alert(123)"><ifr#AAA#ame src="//evil.com"></iframe></div>"
is_bad:trueСобственно, метка is_bad = true, говорящая о том, что в содержимом есть опасные места, и сам текст, помеченный разделителями в опасных местах. Разработчику надлежит изменить такие места перед регистрацией.
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к landing.repo.checkContent, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Проверить контент на опасные подстроки landing.repo.checkContent».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru