Aller au contenu
Litarvan

[Lib] S-Update 2 - La mise à jour, simple, et rapide.

Recommended Posts

1430286335-bannieresu.png

Salut tout le monde ! Après beaucoup de travail, j'ai fini, je l'ai enfin sortit =)


Alors beaucoup de gens utilisaient déjà S-Update 1. Celui-là qu'a-t-il de nouveau ?

C'est simple. Il a été entièrement refait en utilisant un autre fonctionnement.


J'ai repris l'idée du système MD5 classique, prenons celui que Lawood a fait pour OhMyFox, ses avantages sont qu'il marche très bien, et qu'il permet de retélécharger les fichiers modifiés ou supprimés. Mais le problème c'est qu'il faut faire ses .xml soit même, et que au final beaucoup de MD5 sont un peu lent a vérifier. Donc j'ai remédié a ses idée. D'abord on ne fait pas ses .xml soit même, c'est le serveur S-Update qui le fait pour nous. Ensuite, je n'ai pas utilisé les MD5s, j'ai utilisé une idée de mon amis Siox que je remercie grandement.


La date de dernière modification du fichier.


Cette date, tout comme le MD5 est modifié lorsque qu'on touche le fichier, elle est au millième de seconde près, et son avantage par rapport au MD5, c'est qu'on ne la génère pas elle est toute prête la devant nous. Donc gain de temps !


Au final, le système supprime les fichiers intrus, et retélécharge les fichiers modifiés/non à jour/supprimés.

Biensur si vous ne voulez pas utiliser les dates, utilisez les MD5s, vous avez juste à choisir lors de l'indexage !


Comment installer le serveur ?


C'est simple comme bonjour, téléchargez le fichier installer.php ici : https://github.com/TheShark34/S-Update-Server (téléchargez les sources et prenez juste le fichier si besoin).


Mettez le dans un dossier (qui sera le dossier serveur a retenir) sur le FTP de votre hébergement WEB. Allez dessus avec votre navigateur et pouf ! Voilà ! Tout s'est installé ! Suivez donc la page de configuration, le pseudo et le mot de passe permettront la protection des fichiers protégés comme la page de configuration etc...

Et le lien de redirection permet de rediriger lintrus qui irait sur la page server.php avec son navigateur. Quand c'est fini et que vous arrivez sur la page daccueil c'est bon ! La page daccueil vous affiche d'ailleurs les dernières connections et le nombre total de connexion.


Vous devez juste mettre vos fichier dans le dossier files du serveur et aller sur la page d'indexage, choisissez dates ou MD5 et c'est tout ! Et pour accéder a l'accueil allez juste dans le dossier protected du serveur !

Si vous voulez ajouter des zips, mettez les dans le dossier zips, dans le dossier où ils devraient être extraient !

Mais vous me dites, si il supprime les fichiers intrus alors supprimera-t-il le dossier saves de MC par exemple ? Oui, mais le FileIgnorer est la pour remédier a ça ! Dans le dossier du serveur rajoutez une liste de dossier ou fichiers a ne pas supprimer dans le fichier su_ignore.idx ! (Un fichier ou dossier par ligne)

Comment l'utiliser en Java ?

SUpdate su = new SUpdate("UrlDuDossierDeVotreSiteOuYaLeServeur", new File("DestinationDesFichiers"));
try {
 su.update();
} catch (IOException e) {
 e.printStackTrace();
}

Voilà ! A oui et il est sous LGPL, vous pouvez l'utiliser sans problème avec vos programmes commerciaux ou non.


Sources Client : https://github.com/TheShark34/S-Update

Sources Server : https://github.com/TheShark34/S-Update-Server

Jar du client : https://github.com/TheShark34/S-Update/releases/download/2.2.0-SNAPSHOT/s-update-2.2.0-SNAPSHOT.jar

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Super ! Bravo ! :)

Juste une petite question : il est très facile sous linux de changer la date de dernière modification d'un fichier (touch -m <fichier>). En le faisant assez régulièrement pour tromper l'updater, ça pourrait, par exemple, permettre à quelqu'un de faire lancer un minecraft perso via le launcher (qui pourrait passer des arguments intéressants à récupérer pour des gens mal intentionnés). Est-ce que S-Update est prémunie contre ça ? ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah non c'est vrai, mais pour le rare nombre de personne capable de ça, comme disais Technowix, un coup de ban.

Après le mec peux aussi DL les sources de S-Update et supprimer le contenu de la méthode update, il peut aussi faire en sorte que le launcher officiel de MC utilise le dossier du serveur pour lancer le jeu, mais voilà, ça protège des kikoo avec leur xray et tout ça :)

La date était surtout a but de rapidité et de simplicité, plutôt que de protection :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Pourquoi ne pas faire un coup de vérification checksum md5 distant ? C'est pas si dur à mettre en place et ça fonctionne parfaitement.

De plus après, si les gens veulent être vraiment bien protégés contre l'utilisation avec le launcher de base de minecraft, ils peuvent rajoutent un argument a leur minecraft sir celui ci est moddé, créer un fichier dans le .nom-du-serveur ou autre, y'a pleins de facons de proteger.

Edit : Dans ton installer, enleve la variable global et met plutot une constante

Partager ce message


Lien à poster
Partager sur d’autres sites

non mais c'est juste ESSENTIEL de faire un checksum (md5 ou autre)

cela permet non seulement de controler ce que l'utilisateur peut rajouter

mais surtout, c'est le seule moyen de vérifier l'intégrité des fichiers

aussi en cas d'update, cela permet de ne pas tout supprimer/re-télécharger mais de récupérer seulement ce qui doit être mis à jours sans avoir à utiliser de fichier de version et de listing

et pour finir, cela permet aussi de réparer les erreurs d'un utilisateur intrépide qui ne maîtrise pas ce qu'il fait

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui c'st ce que je dit c'est rare quoi tout le monde ne le fait pas, du coup un coup de ban pour ceux qui le fond

Mais vous inquietez pas je vais mettre la possibilité d'utiliser le MD5 si vous y tenez absolument ;)

J'ai fini de tester le systeme de barre de dl, 3 lignes dans un Thread, fonctionne perfect =)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×