У меня есть на сайте форма обратной связи, любой пользователь может зайти на сайт (ледос 1 страница) заполнить её и отправить мне на email. Я хочу поставить защиту от ботов и xss.
На NPM я нашёл
JSXSS Зашёл к ним на
сайт там показано следующее..
Подскажите мне пожалуйста я правильно понимаю, чтобы её подключить для того что-бы она начала работать нужно следующее..
1) Я у себя в проекте установил её
npm i xss --save-dev
в gulp подключил её
'node_modules/xss/dist/xss.js'
2) Закинул в основной файл JS скрипты с сайта из примеров
$(function() {
var html = filterXSS('<script>alert("xss");</scr' + 'ipt>');
alert(html);
options = {}; // Custom rules
html = xss('<script>alert("xss");</script>', options);
});
$(function() {
options = {}; // Custom rules
html = xss('<script>alert("xss");</script>', options);
});
$(function() {
options = {}; // Custom rules
myxss = new xss.FilterXSS(options);
// затем примените myxss.process()
html = myxss.process('<script>alert("xss");</script>');
});
$(function() {
// разрешены только тег a и его атрибуты href, title, target
var options = {
whiteList: {
a: ['href', 'title', 'target', 'label']
}
};
});
// Настроить функцию экранирования для HTML
function escapeHtml(html) {
return html.replace(/</g, '<').replace(/>/g, '>');
}
// Настроить функцию экранирования для значений атрибутов
function safeAttrValue(tag, name, value) {
// Параметры такие же, как у onTagAttr (без опций)
// Возвращаем значение в виде строки
}
1) А вот это вот нужно закидывать в JS файл?
2) Эмм она уже будет работать? Или её как-то нужно через JS к форме привязать.. Не пойму никак..
==========================================================
Против ботов
p.s. читал что капча это бесполезная штука да и люди которые будут заходить что-бы отправить форму мне на email врятли захотят возится из за этого с капчей.
Нашёл вот это вот
Простая приманка для HTML-формы с использованием PHP
По ней объясните мне пожалуйста как правильно подключить.
То как я это понимаю.
скорее всего ошибаюсь
1) Нужно мой index.html переименовать в index.php
2) Добавить в него данный php файл. В форме есть id с именами и эти id имена вставить в этот файл
$name = $_POST['name'];
<?php
//check if form was sent
if($_POST){
$to = 'some@email.com';
$subject = 'Testing HoneyPot';
$header = "From: $name <$name>";
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
//honey pot field
$honeypot = $_POST['firstname'];
//check if the honeypot field is filled out. If not, send a mail.
if( ! empty( $honeypot ) ){
return; //you may add code here to echo an error etc.
}else{
mail( $to, $subject, $message, $header );
}
}
?>
Вроде так.
Для самой формы отправки у меня есть отдельный php файл уже работает отправка.