2017-02-19 1 views
1

я называл некоторые из моих сервлетов с помощью JS/JQuery, когда я нажимаю на некоторые кнопки моего веб, как это следующим образом:Вызов сервлетов с помощью JS безопасен?

btnComment.addEventListener("click", sending); 
function sending() { 
    btnComment.disabled = true; 
    $.post('/Project/AddCommentServlet', { 
     id_pic: idPic.value, 
     text: textComment.value 
    }); 
} 

Так я называю Servlet «AddCommentServlet» с помощью POST, отправляя 2 параметра.

Я отключил доступ с помощью GET к этому сервлету (перенаправление на страницу с ошибкой, если это произойдет), но ... это безопасный способ работы? Это можно сделать по-другому?

Я не хочу, чтобы кто-либо помещал доступ к сервлету через бота или что-то подобное, если этот человек знает имя сервлета и используемые параметры.

Спасибо!

+1

Хорошо, нет никакой разницы между вызовом сервлета из JS и отправкой данных с помощью формы: каждый может видеть сервлет, на который указывает ваша страница, и переданные параметры, поэтому все, что вам нужно сделать, - это защитить ваш сервлет и сделать все необходимые проверки, чтобы не допустить, чтобы кто-то нарушил ваше приложение (т. е. предотвратил SQL-инъекцию, переименовал загруженные файлы в безопасные для операционной системы и безопасные для файлов имена файлов и т. д.). – BackSlash

+1

Вы можете защитить свои конечные точки, следуя протоколу OAuth2, но это то, что вы хотели бы использовать в качестве платформы для [Spring и Spring security] (https://projects.spring.io/spring-security/). Другие варианты: [сеансы] (http://stackoverflow.com/questions/3804209/what-are-sessions-how-do-they-work) и captcha. Вы очень много просите здесь, так что удачи. BTW: чтобы ответить на ваш вопрос, ДА, вызов сервлета с использованием JS безопасен (и ожидается на самом деле), если ваши конечные точки безопасны, но процесс их обеспечения не является чем-то, что я хочу объяснить. –

+0

Спасибо вам большое. Ваши слова позволят мне понять это лучше! ура! – Ommadawn

ответ

0

общественный сервлет.

Если вас беспокоят вежливые боты, вы можете использовать robot.txt.

Если вас беспокоят враждебные боты, единственный способ, которым я сейчас должен поставить какой-то recaptcha.

Смежные вопросы