я называл некоторые из моих сервлетов с помощью 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 к этому сервлету (перенаправление на страницу с ошибкой, если это произойдет), но ... это безопасный способ работы? Это можно сделать по-другому?
Я не хочу, чтобы кто-либо помещал доступ к сервлету через бота или что-то подобное, если этот человек знает имя сервлета и используемые параметры.
Спасибо!
Хорошо, нет никакой разницы между вызовом сервлета из JS и отправкой данных с помощью формы: каждый может видеть сервлет, на который указывает ваша страница, и переданные параметры, поэтому все, что вам нужно сделать, - это защитить ваш сервлет и сделать все необходимые проверки, чтобы не допустить, чтобы кто-то нарушил ваше приложение (т. е. предотвратил SQL-инъекцию, переименовал загруженные файлы в безопасные для операционной системы и безопасные для файлов имена файлов и т. д.). – BackSlash
Вы можете защитить свои конечные точки, следуя протоколу 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 безопасен (и ожидается на самом деле), если ваши конечные точки безопасны, но процесс их обеспечения не является чем-то, что я хочу объяснить. –
Спасибо вам большое. Ваши слова позволят мне понять это лучше! ура! – Ommadawn