2010-03-18 4 views
13

Quelles sont les meilleures pratiques pour sécuriser une page Web ColdFusion à partir d'utilisateurs malveillants? (y compris, mais sans s'y limiter, les attaques par injection SQL)ColdFusion Security

Est-ce que cfqueryparam est suffisant?

+1

Qu'est-ce qui n'est pas constructif à ce sujet? la fermeture de ce fil n'a pas été constructive IMHO ... #moderatorfailagain C'est une question valide, sauf si vous êtes un brownoser Ruby. – Dawesi

Répondre

1

Je dirais que les meilleures pratiques pour ColdFusion sont similaires à ceux pour les applications web de programmation dans toutes les langues.

J'ai récemment lu Essential PHP Security Chris Shiflett et la majorité des questions abordées affectent également ColdFusion, bien que la syntaxe pour les traiter puisse être légèrement différente. Je m'attends à ce qu'il existe d'autres livres agnostiques (éventuellement meilleurs) contenant des principes qui peuvent facilement être modifiés pour être utilisés dans ColdFusion.

1

Bien que l'utilisation d'une solution prédéfinie fonctionne, je recommande de connaître tous les problèmes possibles qui doivent être protégés. Consultez Hack Proofing ColdFusion au Amazon.

1

Ne faites jamais confiance au client. Le plus important «set and forget» de ColdFusion est de suivre les directives de renforcement de l'administrateur du serveur indiquées ci-dessus, de garder le serveur à jour et de suivre ColdFusion sur Twitter pour connaître immédiatement tout nouveau problème. Pour la sécurité de l'application, qui est commune à toutes les langues, vous devez valider chaque élément d'information qui touche votre serveur à partir du client. Les formulaires sont des zones évidentes de contrôle strict, mais n'oubliez pas les paramètres d'URL que vous pouvez utiliser pour la gestion ou le contrôle de l'état de l'application. Quelque chose comme & startRow = 10 & tag = sécurité qui n'est pas "supposé" être touché par l'utilisateur est l'entrée de l'utilisateur. Même si votre application ne peut jamais rompre avec des données invalides, vous ne saurez peut-être pas comment ces données seront utilisées dans le futur. La validation peut être aussi simple que de s'assurer que quelqu'un ne saisit pas un prénom long de 100 caractères et ne contient pas de caractères de programmation ou que & startRow est toujours un nombre. Ce sont les petites choses que les développeurs d'applications ignorent parfois car tout fonctionne correctement tant que vous utilisez le logiciel comme prévu.

Je crois que vous pouvez regarder le Sony Playstation piratage comme un exemple. Malheureusement, ils ne s'attendaient pas à ce que quelqu'un pirate le client (console Playstation) et manipule le logiciel de la console PlayStation pour pirater le serveur. Le serveur a fait confiance au client.

Ne faites jamais confiance au client.

0

CfQueryParam est très important, mais pas assez.

Il existe une solution en boîte que nous utilisons à mon travail: http://foundeo.com/security/. Il couvre la plupart des bases. Et même si vous ne voulez pas l'acheter, vous pouvez jeter un coup d'œil à ses fonctionnalités et avoir une idée des choses que vous devriez considérer.

1

Un autre grand endroit pour en apprendre davantage sur la sécurité (et toutes sortes d'autres sujets) est de consulter la liste massive des présentations de groupes d'utilisateurs enregistrés Charlie Arehart: http://www.carehart.org/ugtv/