Je pensais à écrire un bot irc/extension bot qui permet aux utilisateurs de jouer à certains jeux à base de texte en commençant le jeu,assainissant Entrée de irc
envoyer des parties de certaines lignes qu'ils entrent (match regexp pour le signal de jeu si pas dans le canal des bots ex.rbot nom de famille entrer dans la forêt.envoie "entrer dans la forêt" pour std in of game,
alors que la norme hors du jeu est mise en cache par bot et canalisée vers le canal (ex: "laissez-nous se réjouir pour le canard a été vaincu " obtient lu dans un cache de ligne à l'intérieur du bot, puis le bot l'envoie sur le canal approprié comme
gamename: exultons pour
gamename: le canard a été vaincu » )
Mais je suis un peu inquiet au sujet des choses difficiles les gens sur irc pourraient faire, serait non imprimable en éliminant tous les les caractères sont-ils assez sûrs? Si un programme se ferme (disons qu'ils entrent dans la commande Quitter pour le jeu), que se passe-t-il lorsque vous essayez d'écrire dans le descripteur de fichier pour les programmes std dans (erreur)? D'autres problèmes potentiels? Remarque: Je vais lancer ceci sur linux ou sur * bsd, donc je n'ai pas besoin de m'inquiéter des choses spécifiques à Windows.
Que fait le tuyau? Je peux voir les guillemets simples et doubles pour l'injection de sql ... (mais ceci pourrait ne pas être un système actionné par DB). Cependant, si c'était mysql injection, vous oubliez le backslash qui est tout aussi dangereux. – rook
désolé, oublié le backslash. Mais de toute façon, pour le tuyau: je suppose que c'est un script irssi exécuté à partir de la ligne de commande ... sortir des guillemets + | = attaquant ayant un jour de champ dans votre coquille –
un tuyau est juste un "ou" le & est un "et". Il y a aussi beaucoup plus de caractères dont vous avez besoin: '# &; | *? ~ <> ^() [] {} $ \, \ X0A et \ xFF. 'et "' (http://php.net/manual/en/function.escapeshellcmd.php) – rook