La fondation LLVM change la licence de LLVM pour la passer à une licence Apache 2 + LLVM exception. Pour cela, ils ont besoin de l'accord de tous les développeurs qui ont contribué. Ils en sont à 94% du code avec la nouvelle licence. Plus de détails dans le lien.
Oui en effet, Java se rapproche de Scala. La prochaine grosse évolution c'est le pattern matching sur les types avec les classes sealed. La vidéo Devoxx présente certaines évolutions. Il va y avoir aussi des coroutines.
Le problème pour ces évolutions, c'est qu'il faut rester compatible avec les anciens programmes (c-a-d que la compilation des anciens programmes fonctionnent toujours), et que les principaux outils (eclipse, maven, hibernate, etc…) soient compatibles. C'est pour cela que c'est un peu long.
Posté par vitanix .
En réponse au journal TapTempo en Java 17.
Évalué à 3.
Dernière modification le 07 novembre 2021 à 16:27.
J'ai corrigé sur la version 1.0.2.
J'ai utilisé System.nanoTime()
Comme ça s'il y a un décalage horaire pendant le fonctionnement de TapTempo, les valeurs seront toujours justes.
Oui comme exemple, il y a dans spring data les requetes :
@Query(
value = "SELECT * FROM USERS u WHERE u.status = ?1",
nativeQuery = true)
Collection<User> findAllActiveUsersNative(int parametre); Avec cette syntaxe, tu ne peux pas faire d'injection SQL. Malheureusement, si la requete change suivant les paramètres, par exemple pour un formulaire de recherche, tu ne pourra pas utiliser cette syntaxe.
Autre exemple, avec Google Cloud Platform, le systeme de fichier est en lecture seule. ça signifie que si un virus s'injecte dans le processus du programme, il ne pourra pas s'écrire sur le disque dur, et donc un simple redemarrage supprimera le virus, sauf bien sur s'il accède au noyau de l'OS.
Les techniques que tu cites sont bien, mais pas suffisantes.
J'ai mis en place ces mécanismes en 2011. J'ai fait des amélioration en 2013/2014 en suivant certains conseils de l'OWASP. Voici une page web qui date de 2019 qui donne les explications sur comment hasher le mot de passe : Hash du mot de passe . Ça explique beaucoup de choses, et parles des problèmes sur la façon d'implémenter le tout.
Ça ne parle que du hash, et pas de tout ce qui va autour :
- création d'un nouveau compte avec mot de passe temporaire,
- réinitialisation du mot de passe au bout d'un certain temps,
- réinitialisation du mot de passe d'un utilisateur par un administrateur sans que l'administrateur connaisse le mot de passe et sans que le mot de passe circule en clair par mail,
- gestion des logs pour savoir qui se connecte et se déconnecte et à quelle heure, et sans jamais loguer le mot de passe, ni loguer trop d'information sur l'utilisateur,
- stockage du mot de passe en base en faisant attention que la taille des champs soit suffisamment grand pour stoker le hash,
- blocage d'un compte de façon temporaire, s'il y a eu trop de tentatives par exemple
- blocage d'un compte de façon permanente
- l'envoie du mot de passe entre le navigateur et le serveur
- etc…
Ce que je trouverais bien c'est qu'il y a une librairie qui gère tout cela, et qui rendrait facile le respect de ces principes. Comme cela, c'est maintenu par des spécialistes et tout le monde ferais des sites mieux sécurisé. J'ai regardé récemment du coté de Spring Security, mais c'est une librairie difficile à utiliser je trouve.
Il y a des outils qui permettent de supprimer des classes complètes de façon fiable. J'en connais un peu, mais elles ne sont pas mises en avant, je ne sais pas pourquoi. Il est possible que pour chaque problème de sécurité, quelqu'un a trouvé un moyen à la fois efficace, et facile de le contrer, mais j'ai l'impression qu'il y a peu de publicité sur ces outils.
Il y a quelques année, j'ai cherché comment gérer de façon sécurisé les mots de passe des utilisateurs dans une application. Il n'y a pas un site qui l'explique clairement, même l'OSWAP n'est pas claire la dessus. J'ai fini à force de prendre des info par ci par la de trouver un certain niveau de sécurité. Peut être qu'il y a mieux, mais je n'en sais rien.
# Résumé
Posté par vitanix . En réponse au lien Changement de licence pour LLVM et appel à l'aide. Évalué à 2.
La fondation LLVM change la licence de LLVM pour la passer à une licence Apache 2 + LLVM exception. Pour cela, ils ont besoin de l'accord de tous les développeurs qui ont contribué. Ils en sont à 94% du code avec la nouvelle licence. Plus de détails dans le lien.
[^] # Re: Java cours derrière Scala ?
Posté par vitanix . En réponse au journal TapTempo en Java 17. Évalué à 4.
Oui en effet, Java se rapproche de Scala. La prochaine grosse évolution c'est le pattern matching sur les types avec les classes sealed. La vidéo Devoxx présente certaines évolutions. Il va y avoir aussi des coroutines.
Le problème pour ces évolutions, c'est qu'il faut rester compatible avec les anciens programmes (c-a-d que la compilation des anciens programmes fonctionnent toujours), et que les principaux outils (eclipse, maven, hibernate, etc…) soient compatibles. C'est pour cela que c'est un peu long.
[^] # Re: C'est du pinaillage mais le ne vaudrait mieux pas utiliser Clock
Posté par vitanix . En réponse au journal TapTempo en Java 17. Évalué à 3. Dernière modification le 07 novembre 2021 à 16:27.
J'ai corrigé sur la version 1.0.2.
J'ai utilisé
System.nanoTime()
Comme ça s'il y a un décalage horaire pendant le fonctionnement de TapTempo, les valeurs seront toujours justes.
[^] # Re: C'est du pinaillage mais le ne vaudrait mieux pas utiliser Clock
Posté par vitanix . En réponse au journal TapTempo en Java 17. Évalué à 1.
Je ne connaissait pas ce problème. C'est très intéressant.
[^] # Re: Les techniques de sécurités
Posté par vitanix . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 0.
Oui comme exemple, il y a dans spring data les requetes :
Avec cette syntaxe, tu ne peux pas faire d'injection SQL. Malheureusement, si la requete change suivant les paramètres, par exemple pour un formulaire de recherche, tu ne pourra pas utiliser cette syntaxe.@Query(
value = "SELECT * FROM USERS u WHERE u.status = ?1",
nativeQuery = true)
Collection<User> findAllActiveUsersNative(int parametre);
Autre exemple, avec Google Cloud Platform, le systeme de fichier est en lecture seule. ça signifie que si un virus s'injecte dans le processus du programme, il ne pourra pas s'écrire sur le disque dur, et donc un simple redemarrage supprimera le virus, sauf bien sur s'il accède au noyau de l'OS.
[^] # Re: Les techniques de sécurités
Posté par vitanix . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 1.
Oui, moi aussi, je trouve OAuth bien, mais je n'ai pas encore pu le mettre en place.
[^] # Re: Les techniques de sécurités
Posté par vitanix . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 2.
Les techniques que tu cites sont bien, mais pas suffisantes.
J'ai mis en place ces mécanismes en 2011. J'ai fait des amélioration en 2013/2014 en suivant certains conseils de l'OWASP. Voici une page web qui date de 2019 qui donne les explications sur comment hasher le mot de passe : Hash du mot de passe . Ça explique beaucoup de choses, et parles des problèmes sur la façon d'implémenter le tout.
Ça ne parle que du hash, et pas de tout ce qui va autour :
- création d'un nouveau compte avec mot de passe temporaire,
- réinitialisation du mot de passe au bout d'un certain temps,
- réinitialisation du mot de passe d'un utilisateur par un administrateur sans que l'administrateur connaisse le mot de passe et sans que le mot de passe circule en clair par mail,
- gestion des logs pour savoir qui se connecte et se déconnecte et à quelle heure, et sans jamais loguer le mot de passe, ni loguer trop d'information sur l'utilisateur,
- stockage du mot de passe en base en faisant attention que la taille des champs soit suffisamment grand pour stoker le hash,
- blocage d'un compte de façon temporaire, s'il y a eu trop de tentatives par exemple
- blocage d'un compte de façon permanente
- l'envoie du mot de passe entre le navigateur et le serveur
- etc…
Ce que je trouverais bien c'est qu'il y a une librairie qui gère tout cela, et qui rendrait facile le respect de ces principes. Comme cela, c'est maintenu par des spécialistes et tout le monde ferais des sites mieux sécurisé. J'ai regardé récemment du coté de Spring Security, mais c'est une librairie difficile à utiliser je trouve.
# Les techniques de sécurités
Posté par vitanix . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 0.
Il y a des outils qui permettent de supprimer des classes complètes de façon fiable. J'en connais un peu, mais elles ne sont pas mises en avant, je ne sais pas pourquoi. Il est possible que pour chaque problème de sécurité, quelqu'un a trouvé un moyen à la fois efficace, et facile de le contrer, mais j'ai l'impression qu'il y a peu de publicité sur ces outils.
Il y a quelques année, j'ai cherché comment gérer de façon sécurisé les mots de passe des utilisateurs dans une application. Il n'y a pas un site qui l'explique clairement, même l'OSWAP n'est pas claire la dessus. J'ai fini à force de prendre des info par ci par la de trouver un certain niveau de sécurité. Peut être qu'il y a mieux, mais je n'en sais rien.
# Java et Maven
Posté par vitanix . En réponse à la dépêche Moi, expert C++, j’abandonne le C++. Évalué à 2.
Bonjour,
Moi je l'aurais fait en Java 8/Maven avec l'api standard des Web socket. Voici un tutoriel :
tutoriel