Я новичок в webapps, поэтому прошу прощения, если этот вопрос кажется наивным, просто ищет, чтобы учиться. Я изучаю использование elasticsearch для автозаполнения. Все примеры, которые я видел, показывают некоторую форму jquery/ajax/angularjs, которая предоставляет URL-адрес elasticsearch пользователю, который кажется плохой практикой. Каков надлежащий способ защиты URL-адреса серверов, но все же позволяет ajax совершать вызов (даже если это косвенно)?Как защитить Elasticsearch При использовании ajax
ответ
В мире AJAX нет способа защитить URL-адрес сервера. И это нормально; В любом случае безопасность от неясности не является хорошей практикой. Что вам нужно сделать, так это убедиться, что ваш сервер не может быть взломан через этот URL. Несколько советов:
Отключить скрипты в ES. Новые версии ES по умолчанию отключены.
Не подвергайте ваш голый ES-сервер миру. По умолчанию ES доступен на порту 9200, что означает, что любой может запускать любой запрос (или делать что-то еще, что им нужно). Убедитесь, что порт заблокирован от внешнего доступа. Как отметил один из комментаторов, Javascript должен вызывать ваш сервер, который должен, в свою очередь, вызывать ES-сервер как localhost (опять же, убедитесь, что localhost: 9200 заблокирован от внешнего доступа) или за брандмауэром.
Очистить все входные запросы перед передачей их в ES. ES менее уязвима, чем SQL в «инъекции» атак, но он по-прежнему важно отфильтровать любые неприятные символы, такие как \ { ": и так далее, чтобы ограничить длину строки на что-то разумное, и т.д.
Удачи!
- 1. Как защитить REST API при использовании AJAX?
- 2. Как защитить Elasticsearch
- 3. Как защитить cookie при использовании завитка?
- 4. Как защитить от инъекций при использовании KnockoutJS?
- 5. Как защитить запросы Ajax?
- 6. Как защитить обработчики ajax?
- 7. Как защитить CSRF при использовании Backbone.js для публикации данных?
- 8. ElasticSearch IndexMissingException при использовании prepareGet
- 9. Как защитить API ElasticSearch в приложении Android?
- 10. Как защитить локальный URL API при использовании javascript
- 11. Проблем при использовании $ .ajax
- 12. ошибки при использовании Ajax
- 13. Задачи, запланированные ColdFusion - как защитить при использовании <cflogin>?
- 14. Как защитить частные каналы при использовании socket.io и Laravel Echo?
- 15. Как я могу защитить поле суммы при использовании PayPal IPN?
- 16. Как защитить веб-службы при использовании JSON через JQuery?
- 17. ElasticSearch дает неправильные результаты при использовании терминов
- 18. Elasticsearch/Logstash дублирующий выход при использовании графика
- 19. Elasticsearch увеличивает поле при использовании query_string
- 20. недостающий документ в Elasticsearch при использовании BulkProcessor
- 21. SpringData и Elasticsearch - java.lang.StackOverflowError при использовании ignoreFields
- 22. Дубликаты при использовании nutch -> elasticsearch solution
- 23. Elasticsearch - Непоследовательные результаты при использовании Native Script
- 24. datatables urlrewrite при использовании ajax
- 25. глобальной переменной при использовании Ajax()
- 26. Обновление div при использовании ajax
- 27. защитить ajax и jquery injection
- 28. как очистить данные кэша при использовании ajax?
- 29. Как перенаправить просмотр при использовании ajax?
- 30. Как избежать вложенных функций при использовании AJAX?
Ничего не безопасно с помощью js, все видно, вы можете только попытаться сделать его более трудным для декодирования. Лучший способ - вызвать собственный сервер с помощью ajax, который вызывает URL-адрес elasticSearch и возвращает результат. вы просто не хотите, чтобы elasticsearch url отображался, только ваш URL-адрес сервера будет – juvian