2009-11-04 2 views
3

question très simple: J'ai un site admin dans mon projet web. Alors, comment puis-je le rendre sûr?Comment sécuriser le site admin?

Ce que je jusqu'à présent:

  • Base de données utilisateur traitées avec UserID et userlevel
  • sur la pageload de la page principale d'administration (qui comprend tous les sites d'administration), il y a une clause pour vérifier si userID est oK (obtenir l'utilisateur de base de données) et si userlevel est juste
  • Si non, rediriger vers default.aspx avec la page principale normale
  • si oui, allez trought

À quel point est-ce vraiment sécuritaire?


Edit:

  • L'ID utilisateur est enregistré dans une session sur le serveur.
  • Il n'y a aucun moyen d'enregistrer le login (pas de cookies).
  • L'utilisateur doit se connecter pour obtenir le code d'utilisateur dans la session
  • La connexion est enregistrée dans une table de base de données user_log avec nom d'utilisateur, mot de passe, ip, loginsucceeded et userID
+0

Comment l'ID utilisateur est-il présenté à l'application? Aussi, comment authentifiez-vous l'utilisateur? – gahooa

Répondre

1

L'idée de base semble correcte. Tout se résume à la façon dont vous obtenez ce UserID pour faire les contrôles contre. Si l'ID utilisateur est passé en tant que chaîne de requête, c'est très mauvais. Si elle est stockée dans une session via un certain type de préautorisation alors c'est mieux. Si vous utilisez SSL, la vérification IP, etc., cela améliorera votre niveau de sécurité.

L'élément principal est COMMENT vous obtenez l'ID utilisateur pour vérifier. C'est là que l'exploit va se produire. Sécurisez ce processus et vous devriez être d'accord avec votre configuration.

Éditez: En fonction de votre mise à jour, cela semble correct mais cela dépend aussi de la sécurité dont vous avez réellement besoin. Quelle est la sécurité de votre page de connexion? Utilisez-vous SSL? Des soucis concernant le détournement de session? Pourquoi ne pas stocker une adresse IP avec l'ID utilisateur et vérifier l'adresse IP de la demande par rapport à l'adresse IP stockée lors de l'extraction de l'ID utilisateur à partir de la session?

Il existe tellement de solutions de sécurité. Vous devez décider jusqu'où vous devez aller en toute sécurité pour assurer le niveau de sécurité nécessaire pour votre application particulière.

+0

Mon site d'administration devrait être aussi sûr que possible, car il est lié à l'argent réel des clients. Je n'utilise pas SSL maintenant, mais il est prévu de l'implémenter presque à l'avenir. L'idée avec l'IP est super, merci. – Kovu

0

Nous utilisons l'authentification Windows intégrée.

  1. Dans le Gestionnaire IIS, cliquez sur l'onglet
  2. Décocher "Anonymous Access"
  3. Cochez la case "Authentification Windows intégrée"

"Sécurité de répertoire" Cela vous permet de déterminer qui a droit à votre administrateur site en modifiant les comptes de domaine au lieu d'utiliser une solution «roll-your-own». Vous pouvez toujours obtenir les informations d'identification de l'utilisateur connecté via la classe Environment, qui peut être utilisée pour associer des propriétés Web spécifiques à chaque utilisateur que vous souhaitez stocker dans votre base de données. Cette solution présente également l'avantage de gérer automatiquement les délais d'attente, de reloger l'exigence si le navigateur est fermé, etc.

Votre solution semble très bien, même si vous ajoutez des comptes utilisateur individuels au serveur SQL au lieu de tout gérer via le nom de connexion du compte de service ASP.NET. J'éviterais d'ajouter des comptes d'utilisateurs individuels dans votre base de données. Dans ASP.NET, à moins que vous ne passiez à travers des cercles inutiles, le compte de service ASP.NET est ce qui est authentifié pour la connectivité DB, pas l'utilisateur qui est connecté au site.

+0

Je gère ici tous les utilisateurs manipulant de mes propres mains, car un «utilisateur» est en même temps un «client» avec beaucoup d'informations et de conditions (vérification par e-mail, utilisateur bloqué et supprimé (non physique), etc.). – Kovu

+0

Les clients accèdent au site d'administration? Ou utilisez-vous le même mécanisme d'authentification que vous avez créé pour votre site public? –

+0

Aucun client n'accède au site d'administration. Je n'utilise que la même authentification. J'ai utilisé une valeur int "userlevel". – Kovu

Questions connexes