Sanitization — процесс очистки данных, получаемых от пользователя, с целью предотвращения ошибок, некорректного поведения приложения и угроз безопасности. Bliss.js, как лёгкая библиотека для работы с DOM и событиями, предоставляет инструменты, упрощающие проверку и обработку пользовательского ввода, интегрируя её с привычными методами работы с элементами страницы.
В Bliss.js для взаимодействия с формами используются методы
$ и $$, позволяющие быстро получать доступ к
элементам:
var input = $('#username'); // получение одного элемента
var inputs = $$('input'); // коллекция всех input на странице
Для санитизации данных сначала нужно извлечь значение:
var value = input.val();
Метод val() возвращает строку, которую затем можно
обработать стандартными средствами JavaScript, либо с применением
вспомогательных функций Bliss.js для фильтрации.
Метод trim() удаляет пробелы в начале и конце
строки:
var cleanValue = value.trim();
Bliss.js интегрируется с цепочками методов, что позволяет использовать комбинацию методов для упрощения кода:
var cleanValue = $('#comment').val().trim();
Чтобы предотвратить XSS-атаки, необходимо экранировать символы
<, >, & и
". Bliss.js не предоставляет встроенного метода для прямого
экранирования, поэтому применяется стандартный подход через замену
символов:
function escapeHTML(str) {
return str.replace(/[&<>"']/g, function(m) {
return ({
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
})[m];
});
}
var safeValue = escapeHTML($('#message').val());
Для проверки форматов (например, электронной почты или телефона)
используется RegExp:
var email = $('#email').val().trim();
var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailPattern.test(email)) {
console.warn('Неверный формат email');
}
Bliss.js позволяет привязывать проверку к событиям формы:
$('#form').on('submit', function(e) {
var email = $('#email').val().trim();
if (!emailPattern.test(email)) {
e.preventDefault();
alert('Введите корректный email');
}
});
Для чисел важно проверять и преобразовывать ввод в нужный формат:
var age = parseInt($('#age').val().trim(), 10);
if (isNaN(age) || age < 0 || age > 120) {
console.warn('Некорректное значение возраста');
}
Для специальных символов или ограниченных наборов символов удобно
использовать метод replace с регулярным выражением:
var username = $('#username').val().replace(/[^a-zA-Z0-9_]/g, '');
Это убирает все символы, кроме латинских букв, цифр и подчёркиваний.
Bliss.js облегчает обработку событий с помощью метода
.on. Санитизацию можно выполнять в реальном времени при
вводе, а не только при отправке формы:
$('#comment').on('input', function() {
var sanitized = $(this).val().replace(/<[^>]*>/g, '');
$(this).val(sanitized);
});
Такой подход минимизирует риск XSS и других атак через пользовательский ввод.
Bliss.js позволяет управлять атрибутами DOM элементов, что важно при вставке динамического контента:
var button = $('#submit');
button.attr('disabled', true); // блокировка до прохождения санитизации
При необходимости можно динамически очищать или модифицировать данные перед отправкой на сервер:
$$('input[data-sanitize]').each(function(input) {
var clean = $(input).val().trim();
$(input).val(clean);
});
Bliss.js поддерживает отправку форм через fetch и AJAX,
что позволяет дополнительно проверять данные на стороне сервера после
базовой клиентской санитизации:
$('#form').on('submit', function(e) {
e.preventDefault();
var data = {
username: $('#username').val().trim(),
email: $('#email').val().trim()
};
fetch('/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
}).then(res => res.json())
.then(console.log);
});
Это обеспечивает двойной уровень безопасности: очистка на клиенте и проверка на сервере.
.on и коллекций
$$ упрощают массовую обработку и динамическую
санитизацию.Sanitization в Bliss.js строится на комбинации лёгкости библиотеки с мощными инструментами JavaScript для фильтрации, проверки и экранирования пользовательских данных.