Aller au contenu

daRobot

Membre
  • Compteur de contenus

    5
  • Inscription

  • Dernière visite

Information de profil

  • Sexe:
    Homme

Mon site internet

Visiteurs récents du profil

790 visualisations du profil

Le palmarès de daRobot !

Nouveau

Nouveau (1/8)

1

Réputation sur la communauté

  1. Les gens aiment être mis à l'honneur, les événements et les concours permettent de fidéliser ton audience, la proximité entre l'équipe et les membres peut permettre de créer un sentiment de confiance entre l'équipe et les membres, c'est une sorte de "privilège" de parler avec un membre d'une équipe, ça donne de l'importance aux membres aussi. Faire contribuer les joueurs est une très bonne idée, si ils se sentent écoutés et mis en valeurs, ils se sentent important Insister sur les réseaux sociaux, montrer l'évolution de population du serveur, ça permet aussi de mettre en confiance les joueurs sur leurs choix de serveur
  2. Juste un avis d'un ancien totalement à la retraite et brièvement ! Malgré qu'une nouvelle génération de jeunes internautes soit arrivé, Habbo reste un des jeux les plus populaires de cette génération d'internautes. Innovation technique, graphique, communautaire, avoir une bonne équipe, des bons événements, ce ne sont pas les mots-clés du succès, vous faites une erreur d'analyse. Soyons simple, les adolescents cherchent la reconnaissance, la popularité, d'où ce phénomène ancien de rejoindre une communauté pour devenir membre de l'équipe. L'autre facteur qui entre en jeu, c'est l'effet de masse, les interactions sociales sont déjà plus diverses dans une masse que dans un groupe isolé et les moyens d'obtenir une reconnaissance ou une certaine popularité sont multiples Ainsi, un serveur privé avec une forte fréquentation et une longévité déjà éprouvé, dispose de l'unique clé du succès, la confiance de vos joueurs, elle est acquise de par la réputation de votre serveur, de par sa fréquentation, sa stabilité, cela apporte une sécurité à l'utilisateur, les serveurs privés qui existent depuis des années sont gérés d'une main de fer et se rapprochent du comportement administratif des serveurs officiels d'antan. Voyez les différentes fonctionnalités, animations comme des un moyen d'améliorer votre réputation, mais le point-clé c'est de donner ce sentiment d'importance et de confiance aux joueurs, rien de plus.
  3. daRobot

    BoSTCMS [R63C]

    On télécharge pour la review
  4. daRobot

    [Partage] ZeusCMS

    Bon, franchement, je vous déconseille vivement d'utiliser ce CMS. Hashage des mots de passe en SHA1, bien connu pour ces trous béants depuis des années.. (si cela intéresse ne serait-ce qu'une personne, voir ici) L'utilisation des fonctions MySQL originales de PHP, vulnérable et qui vous empêcheront d'utiliser PHP 7 (qui en terme de stabilité et de performance brute, surpasse et de loin, toutes versions de PHP 5) et qui souffre d'énormes problèmes sous HHVM. L'abus de workaround pour rediriger l'utilisateur (solution annexe à un bug que le développeur ne comprends pas et/ou ne corrige pas) notamment en Javascript, voir : function Redirect($url) { if(!headers_sent()) header('Location:'.safe($url,'SQL')); else print '<script>window.location.replace("'.safe($url,'SQL').'");</script>'; exit ; } Dans ce cas, on vérifie, si il y a déjà des en-têtes envoyées, sauf qu'avant de rediriger, on ne vérifie pas si les sorties sont vides, ainsi, si le CMS a osé faire un session_start, ou un header, tout prochain appel de fonction modifiant les en-têtes provoquera un avertissement (contourné dans le CMS par un magnifique @session_start), ainsi, il est propice, pour rédiriger correctement d'apprendre à utiliser la temporisation de sortie (les fonctions ob_) et d'arrêter d'utiliser des fonctions qui retournent du Javascript dans du PHP, pour faire ce que sait très bien faire PHP (et le tout dans le respect des normes de l'IEEE). Ensuite, parlons-donc de la magnifique fonction safe : <?php function safe($val, $type = 'SQL') { /** * Sauf si null est forcé, il n'y a aucun moyen que la valeur par défaut (string) 'SQL' * soit remplacé, alternativement, on assiste ici à l'utilisation de l'opérateur == * qui vérifie UNIQUEMENT la valeur, alors que l'on vérifie un type * 0 == NULL fonctionne, ce qui pour une vérification de type est totalement faux * on utilise soit === soit la fonction is_null() de base de PHP */ if ($type == NULL) $type = 'SQL'; /** * Encore une fois, pas de contrôle de type sur une chaîne de caractère * si $type = 0 alors $type == 'HTML' retournera TRUE * par le simple fait qu'une chaine de caractère comparé à un int sera convertie en int * une chaine de caractère ne contenant pas de chiffre au début, sera traduite en 0 * * * Deuxième remarque, on évite d'utiliser strip_tags puisqu'on filtre l'HTML principalement * en sortie et l'utilisation de htmlspecialchars (combiné à d'autres fonctions) permettent * d'afficher ces tags sans aucun risque de sécurité, il en va de l'intégrité de l'entrée */ if ($type == 'HTML') { $val = strip_tags($val); return htmlspecialchars($val); } /** * Même remarque que pour le reste, avec un bonus faille de sécurité SQL sur un magnifique OR 1=1 */ else if ($type == 'SQL') { if (get_magic_quotes_gpc()) $val = stripslashes($val); return mysql_real_escape_string($val); } // Cast inutile return (false); } J'ai déjà tout dis dans le code, rien qu'un simple extrait démontre le tout.. Alternativement, on a une tentative de sécurisation des injections SQL dans les requêtes GET : $injection = 'INSERT|UNION|SELECT|NULL|COUNT|FROM|LIKE|DROP|TABLE|WHERE|COUNT|COLUMN|TABLES|INFORMATION_SCHEMA|OR' ; foreach($_GET as $getSearchs){ $getSearch = explode(" ",$getSearchs); foreach($getSearch as $k=>$v){ if(in_array(strtoupper(trim($v)),explode('|',$injection))){ exit; } } } Sauf que ça filtre rien dans $POST et c'est là où c'est assez trivial.. surtout dans une module de connexion, ou d'inscription.. Ah oui, ça aussi : <?php function encrypt($data) { $key = "secret"; // Clé de 8 caractères max $data = serialize($data); $td = mcrypt_module_open(MCRYPT_DES, "", MCRYPT_MODE_ECB, ""); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td) , MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = base64_encode(mcrypt_generic($td, '!' . $data)); mcrypt_generic_deinit($td); return $data; } Les fontions mcrypt_ sont obsolètes depuis le 22 mars 2016 On passera pour les propriétés codées en dur, la classe Auth dont l'utilité est à redéfinir totalement, le support multi-émulateur codé en brut à coup de condition qu'on retrouve un peu partout, des filtrages en type 'SQL' sur une récupération d'IP (qui ne se base que sur la REMOTE_ADDR, ce qui est totalement invalide en cas de X-FORWARDED notamment sous proxy ou sous CloudFlare C'est quand même grave que vos CMS n'aient pas évolué entre HabboPHP et SystemCMS, ah c'est normal.. comment ça c'est la même chose.. : https://github.com/Habbo-PHP/HabboPHP/blob/master/includes/functions.php https://github.com/Habbo-PHP/HabboPHP/blob/master/includes/core.php Suffit de faire une vérification différentielle des fichiers et on voit la supercherie de certains CMS, faire du re-pompage, ça ne s'appelle pas être développeur, ça s'appelle être un bidouilleur.
  5. daRobot

    [Partage] ZeusCMS

    Bon, c'est classique.. un CMS comme un autre.
×
×
  • Créer...