Как защитить сайт и сервер?

Добрый день, уважаемые участники.

Вчера заметил переходы со странного сайта — acunetix-referrer.com. Прочитал, что это сканер уязвимости сайтов.

Этот сервис создавал ссылки вида
sitename/?wvstest=javascript:domxssExecutionSink(1,%22%27\%22%3E%3Cxsstag%3E()locxss%22)

после чего, (а может быть в результате других атак ниже) стерлись некоторые статьи из базы данных. На сайте около 500 статей, из которых стерлись 5.

Как стерлись?
В БД некоторые строки удалились. (случайным образом. В некоторых статьях строка body (основной текст, в некоторых иконка и т.д.))

Далее, сегодня утром обнаружил такие записи в журнале:

PDOException: SQLSTATE[23000]: Integrity CONSTRAINT violation: 1062 Duplicate entry 'node-110-0-0-und' FOR KEY 'PRIMARY': INSERT INTO {field_data_field_fivestar} (entity_type, entity_id, revision_id, bundle, delta, LANGUAGE, field_fivestar_rating, field_fivestar_target) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 110 [:db_insert_placeholder_2] => 110 [:db_insert_placeholder_3] => service [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 20 [:db_insert_placeholder_7] => ) в функции field_sql_storage_field_storage_write() (строка 514 в файле /var/www/drupal/modules/FIELD/modules/field_sql_storage/field_sql_storage.module).
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect INTEGER VALUE: '-' FOR COLUMN 'field_fivestar_rating' at ROW 1: INSERT INTO {field_data_field_fivestar} (entity_type, entity_id, revision_id, bundle, delta, LANGUAGE, field_fivestar_rating, field_fivestar_target) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 110 [:db_insert_placeholder_2] => 110 [:db_insert_placeholder_3] => service [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => — [:db_insert_placeholder_7] => ) в функции field_sql_storage_field_storage_write() (строка 514 в файле /var/www/drupal/modules/FIELD/modules/field_sql_storage/field_sql_storage.module).
судя по журналу, за две минуты было сделано около 800 таких попыток.
Атака шла с 6 утра до 10 вечера.
Так же сканировали сайт
worker-01.sfj.corp.censys.io
scan-13.shadowserver.org
scan-37.security.ipip.net
196.52.43.119
Конфиг:
VPS
Processor: 1 vCore
RAM: 2 GiB
Storage: 10 GiB
apache+php7+mysql
Вопросы:
1. стоит ли блокировать опасных сканеров уязвимостей?
как здесь www.nuevolab.com/blog/archives/380
2. стоит ли в данном случае установить мод apache mod_security или он устарел?
3. как бы Вы поступили в этой ситуации? Какие средства защиты от различных атак: xss,sql inj,ddos итд актуальны в 2018?
Спасибо.