J'ai développé une application de messagerie instantanée utilisant le Facebook Messenger platform. J'ai utilisé Spring Boot avec Tomcat intégré pour la plate-forme Web. L'application devrait fonctionner sur Amazon aws, ouverte sur le WWW, et être utilisée comme un webhook pour recevoir des rappels de Messenger sur https.Meilleure pratique pour le déploiement de l'application de démarrage de démarrage sur Amazon
J'ai besoin d'un conseil pour sécuriser l'application, donc il ne sera pas piraté ou inondé de demandes qui ne viennent pas de Facebook.
Je pensais que l'application nécessitait une connexion sécurisée (ssl), mais l'utilisation de "security.require_ssl = true" dans application.properties n'a pas fonctionné. Peut-être que je ne sais pas quelle est la signification de cela et comment le configurer proprement. Existe-t-il une meilleure pratique pour bloquer les demandes qui ne sont pas des demandes https? Ou un moyen de bloquer les demandes qui sortent de Messenger au niveau de l'application?
Merci beaucoup!
EDIT
En attendant, je bloqué les demandes d'autres adresses IP dans la couche d'application à l'aide de l'intercepteur de gestionnaire:
@Configuration
public class MyWebApplicationInitializer implements WebApplicationInitializer, WebMvcConfigurer{
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new HandlerInterceptor() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
if (! (request.getRemoteAddr().equals("173.252.88.66") || request.getRemoteAddr().equals("127.0.0.1")|| request.getRemoteAddr().equals("0:0:0:0:0:0:0:1"))){
logger.warn("Request is not coming from authorized remote address: " + request.getRemoteAddr()+". Rejecting");
response.getWriter().write("Unauthorized Address");
response.setStatus(401);
return false;
} else {
return true;
}
}
}
De facebook documentation de référence, je vois qu'il ya une possibilité de mettre un jeton de rappel (https://developers.facebook.com/docs/messenger-platform/webhook-reference), en avez-vous configuré un? le recevez-vous du côté de l'application du ressort (comme un chemin ou un paramètre)? –
@GuyBouallet Le jeton est pour une première vérification. Les rappels en cours ne contiennent aucun jeton. Avez-vous vu quelque chose que j'ai raté? –
Avez-vous vérifié s'il existe un en-tête http appelé X-Hub-Signature dans les requêtes reçues par tomcat? –