Oracle
 sql >> Base de données >  >> RDS >> Oracle

accès refusé lors de l'utilisation de JDBC à partir d'une applet de navigateur

Les applets s'exécutent dans un environnement avec des règles de sécurité très restrictives. Vous devez au moins signer votre applet.

Mais, le problème est plus important ici, faire JDBC à l'intérieur d'une applet est une très mauvaise idée. Le code source de l'applet est accessible publiquement et est donc sensible aux hacks faciles. Vous devriez vraiment créer un service Web pour cela à la place, puis laisser votre applet accéder à ce service Web à la place. Avec un webservice, votre applet pourra échanger des informations avec la base de données par de simples requêtes/réponses HTTP. Avec un service Web, vous masquez les détails d'accès à la base de données, le code JDBC et SQL au public.

La manière exacte de créer un service Web dépend de l'environnement du serveur et du langage de programmation utilisé. Dans Java EE par exemple, vous pouvez déjà utiliser un simple servlet pour cela, mais JAX-RS et JAX-WS sont également pris en charge pour les services Web reposants (XML/JSON) et XML respectivement. Une applet est sans aucune restriction de sécurité autorisée à se connecter avec son hôte dont l'adresse est disponible par getCodeBase() Par exemple

InputStream response = new URL(getCodeBase(), "servlet?foo=bar").openStream();
// ...