.htpasswd pas sous iis, donc quel equivalent ?

.htpasswd pas sous iis, donc quel equivalent ? - ASP - Programmation

Marsh Posté le 28-10-2003 à 09:13:36    

Bonjour
 
Je programme en ASP sous W2K et avec sql server
Je souhaite pouvoir proteger un repertoire de facon dynamique, c'est-à dire rajouter des utilisateurs qui auront acces à ce repertoire en utilisant le code, comme on peut faire avec un .htaccess pour apache
J'ai vu qu'on pouvait passer par les droits ntfs mais dans ce cas ce n'est pas dynamique.
La seule chose que j'ai trouvé c'est faire un formulaire et comparé le login et le mot de passe avec ceux stockés dans la bdd.
 
Y a-t-il une meilleure solution mieux sécurisé ?
 
Merci
So07

Reply

Marsh Posté le 28-10-2003 à 09:13:36   

Reply

Marsh Posté le 28-10-2003 à 09:42:09    

Tu peux toujours créer des utilisateurs NT à la volée, mais bon, un mot de passe dans une BDD c'est ce qu'il y a à la fois de plus propre et de plus simple... Quand à la sécurité, je vois pas ce qu'il y a a en redire, ça dépends ensuite comment tu gères ton truc.

Reply

Marsh Posté le 28-10-2003 à 15:05:56    

Le pb de securité et que si tu connais l'adresse des pages tu peux y accéder sans passer par le formulaire d'authentification

Reply

Marsh Posté le 28-10-2003 à 15:07:47    

Bah suffit de mettre se formulaire en include dans tes pages et gérer une session pour éviter de resaissir le mot de passe à chaque chargement :sarcastic:
 
C'est le fonctionnement de tout site gérant des droits utilisateurs... (parceque les droits à la .htaccess euh... :vomi:)

Reply

Marsh Posté le 28-10-2003 à 15:13:19    

avec .htaccess tu tapes l'adresse il te demande obligatoirement une authentification
Avec les variables de session de l'asp :
1 - Il faut tester sur chaque page
2 - Il suffit de passer dans l'url la variable de session et tu accedes à la page

Reply

Marsh Posté le 28-10-2003 à 15:31:12    

1) C'est quand même plus propre, et surtout ça te permet de ne pas te limiter à "peut voir/peut pas voir"
2) Ca c'est quand l'implantation des sessions est pourrie. Tu dois pas avoir l'habitude de faire de l'ASP toi. C'est pas comme en PHP où on peut mélanger les variables d'application, de session, de POST et de GET avec les variables locales dans le plus joyeux des bordels.
 
3) En plus, en ASP tout bête (pas .NET) on ne peux pas gérer les session autrement que par cookie de session, donc tu peux tenter de mettre autant d'identifiant de session que tu veux dans l'URL (en m'expliquant d'où tu le connaîs) ça ne fera rien.

Reply

Marsh Posté le 28-10-2003 à 15:35:54    

Dans mon cas actuel "peut voir/peut pas voir" me suffit.
 
Peux-tu m'expliquer l'implantation des session pour que ce ne soit pas pourri
Merci

Reply

Marsh Posté le 28-10-2003 à 15:51:43    

Bah en ASP, les variables de session sont disponible dans le code par l'intermédiaire de l'objet "session" et c'est tout. Donc si un utilisateur mal intentionné essaie de passer au travers en mettant des infos dans l'URL, ça n'ira pas dans l'objet session, mais dans la collection Request.QueryString (et pas héritage dans Request tout court). Mais en aucun cas on ne peux mélanger les deux, contrairement au PHP où jusqu'à récement, on ne pouvais même pas faire la différence entre ces types de variable.
 
Moi je te conseille un truc simple :
 
A début de chaque page :
 
<!-- #INCLUDE file="login.asp" -->
 
Dans ce fichier tu affiches au cas ou session("LOGIN" ) = "" un formulaire pointant sur "checklogin.asp" qui va vérifier que les login et password passés en Request.Form (donc forcément transmis par un formulaire, donc inviolable) correspondent à ce qu'il y a dans la base.
Ensuite, toujours dans cette page, tu mets le login passé en Form dans la session, et tu renvoies sur la page appelante (je te laisse jouer avec, je vais pas non plus te faire ton site ;))


Message édité par MagicBuzz le 28-10-2003 à 15:52:15
Reply

Marsh Posté le 31-10-2003 à 16:05:21    

MagicBuzz a écrit :


Dans ce fichier tu affiches au cas ou session("LOGIN" ) = "" un formulaire pointant sur "checklogin.asp" qui va vérifier que les login et password passés en Request.Form (donc forcément transmis par un formulaire, donc inviolable) correspondent à ce qu'il y a dans la base.


N'importe qui peut envoyer des données avec une requete de type FORM , le donc inviolable me paraît exageré =)


Message édité par Azzazel le 31-10-2003 à 16:05:48
Reply

Marsh Posté le 31-10-2003 à 19:47:51    

Y'a 1000 façons de s'assurer que la page profient bien d'un formulaire du site.

Reply

Marsh Posté le 31-10-2003 à 19:47:51   

Reply

Marsh Posté le 01-11-2003 à 08:29:22    

Dans toutes mes pages ASP j'inclue ce bout de code :

Code :
  1. <%
  2. if Session("MM_Username" )="" Then
  3. Response.Redirect "acces.asp"
  4. end if
  5. %>


Message édité par Flyman30 le 01-11-2003 à 08:29:35
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed