asp sessions : pour des accés restreints à certaines catégories - ASP - Programmation
Marsh Posté le 18-02-2004 à 13:33:15
C'est pas ce qu'il y a de mieu, mais oui, ça marchera tout à fait comme ça.
Marsh Posté le 18-02-2004 à 14:25:31
Pour une meilleur sécurité, il vaut mieu ne conserver que le login en mémoire, plus une autre info (genre son ID interne dans la table), et re-valider ces droits lors du chargement de chaque page.
Ca permet de mieu se protéger contre un éventuel hack en rendant ce dernier "un peu" plus difficile, et en en réduisant l'impact.
Deplus, avec cette solution, tu peux mettre à jour en live les authorisations des utilisateurs.
Marsh Posté le 18-02-2004 à 14:42:16
ça va pas etre trop lourde à chaque page?
vu que y'a des ajouts, suppressions etc...???
Marsh Posté le 18-02-2004 à 14:50:08
Normalement, si ta table permettant l'authentification est bien faite, non, ça doit à peine se ressentir (une 10zaine de millisecondes de plus)
Marsh Posté le 18-02-2004 à 14:58:59
Create table profils
(
pro_num tinyint identity NOT NULL PRIMARY KEY,
pro_cat1 varchar(10),
pro_cat2 varchar(10),
pro_cat3 varchar(10),
pro_cat4 varchar(10),
pro_cat5 varchar(10),
pro_cat6 varchar(10),
);
ça irait ça ?
avec comme valeur : soit "admin" soit "visual" soit "interdit"
merci beaucoup hein ! :-D
Marsh Posté le 18-02-2004 à 15:23:07
j'aime pas du tout cette structure, mais ça devrait aller.
PS: char au lieu de varchar : faible quantité de données, et besoin d'accès le plus rapide possible (c'est idition de perdre du temps là dessus)
PS²: pourquoi pas :
0 : interdit
1 : visual
2 : admin
ou alors char(1) :
I : Interdit
V : Visual
A : Admin
Ca prendra moins de place et ça changera pas grand chose.
M'enfin perso je préfère une bonne table :
user_id int
cat_id int
right char(1)
Marsh Posté le 18-02-2004 à 17:08:39
oui, je vais plus utiliser char :-D
Et sinon, je peux stocker en clair les mots de passes dans la base de données?
et comment peut on hacker la sécurité des sessions asp?
je veux dire si j'utilise ça c bon?
Marsh Posté le 18-02-2004 à 17:21:35
oui, tu peux stocker en clair. c'est pas recommandé, mais bon, de toute façon si t'as pas de SSL, tu pourras pas garantir la moindre sécurité au niveau des mot de passe là où elle est la plus sensible donc...
sinon, ben quoi que tu fasses, ce sera toujours hackable, au pire, c'est une question de temps.
disons que les sessions ça peut être dangereux, parceque très souvent, dans le code, on laisse en commentaire des code de débug, avec souvent le contenu des variables de session, ou alors une page "test.php" ou ce genre de trucs... donc moins on a d'info sensibles en mémoire, moins on risque de les montrer par erreur.
Style la page "test.asp", j'en suis le champion
http://www.gemedicalaccessories.com/test.asp (ça fait 5 ans qu'elle est en ligne )
http://www.manga-torii.com/test.asp (ça fait moins longtemps mais j'ai pas l'intention, de l'enlever, elle me sert à retrouver mon IP )
Marsh Posté le 18-02-2004 à 18:55:35
d'accord :-D
je vais faire attention
et sinon, je vois rien dans la page la :
http://www.gemedicalaccessories.com/test.asp
Marsh Posté le 19-02-2004 à 09:03:25
Ha ben tiens, le site est en rade maintenant
Code :
|
Encore les admin qui font un backup de la base en pleine journée comme des gros crétins... (bon, faut dire que le site étant internationnal, c'est dur de trouver un moment ou tout le monde dorss )
Marsh Posté le 03-03-2004 à 23:03:48
Merci pour tout les renseignements, j'ai fait comme t'as dit :-D
Et sinon, une autre question :-D
Peut on empecher le téléchargement d'un fichier sur un serveur asp?
par exemple, un .zip?
ou si on tape complètement le lien manuellement, on l'aura toujours( à condition de connaitre le lien :-D )
Marsh Posté le 04-03-2004 à 11:33:13
il suffit de permettre uniquement d'éxécuter sur le répertoire, et non pas lire.
c'est ce qu'on fait pour s'assurer qu'une personne ne pourra pas lire les sources d'un fichier asp : on ne lui permet que de l'executer.
cela dit, je sais pas ce que tu vas pouvoir faire avec un zip si c'est pour pas pouvoir le lire
Marsh Posté le 04-03-2004 à 23:14:51
Ah oui :-D
mais c'est un hebergement..en asp, on peut pas changer les droits des répertoires.. enfin sur mon hebergement en tout cas! en fait je voudrais permettre le téléchargement d'un fichier .tgz seulement je sais qu'il a les droits...
et un truc du genre if password = "toto"
c'est fiable aussi? si la personne ne peut pas avoir les sources?
Marsh Posté le 05-03-2004 à 09:51:12
et question qui va avec : En php, on a le .htaccess pour la sécurité des pages sur hebergement.
En asp il y a quelque chose du meme genre?
Marsh Posté le 05-03-2004 à 10:49:12
.htaccess fait partie des extensions frontpage. Donc si elles sont présentes sur le serveur, oui. Perso, je déteste cette solution, que je trouve crade au maximum.
Sinon, pour faire ça proprement...
Normalement, tout bon hébergeur ASP dispose d'un répertoire où on met normalement la base de données Access (si présent) ou autres fichiers importants, qui ne doivent pas être accessibles depuis le site.
Fout ton fichier dedans.
Ensuite, dans ton code :
<%@ Language="VBScript" %>
<%
dim fso, fil
Set fso = Server.CreateObject("Scripting.FileSystemObject" )
Set fil = fso.OpenTextFile(Server.Mappath("/répertoireProtégé" ) & "\nomDuFichier.tgz" )
Response.Write fil.ReadAll
fil.Close
%>
Logiquement, ça doit marcher.
Tu peux ajouter en entrée un test sur un login, etc.
Si FSO est désctivé (il y a de grandes chances) tu peux faire de même avec les fonctions du système de fichier de VBS, mais c'est un peu plus chiant à faire.
C'est LA seule méthode "propre" qui existe.
Marsh Posté le 05-03-2004 à 12:26:12
Je ne sais pas pourquoi, il y a toujours une erreur lors de la décompression qui se glisse!
du coup j'utilise ça //www.xefteri.com/articles/may082002/default.aspx
Marsh Posté le 05-03-2004 à 12:39:35
ça doit être à cause de "opentextfile", ces fois ça altère les fichiers binaires, quand ils contiennent des caractères non-imprimables qui correspondent à une instruction (backspace, etc.)
Marsh Posté le 05-03-2004 à 13:02:57
ah d'accord je comprends maintenant :-D
merci beaucoup ça marche :-D
super :-D
Marsh Posté le 08-03-2004 à 10:44:27
Quelque chose du style :
if motdepasse = "toto" en asp c assez sur aussi?
Marsh Posté le 09-03-2004 à 13:34:05
c'est pas terrible, mais en effet tu peux, puisque si un utilisateur arrive à voir les sources, de toute façon il aura assez d'informations pour trouver une autre faille dans ton code. ça sert donc à rien de plus protéger que ça.
Marsh Posté le 09-03-2004 à 16:16:17
s'il arrive à voir les sources? Tu y arrives ?
(oui il peut genre voir le mot de passe de la base de données :-/)
Marsh Posté le 09-03-2004 à 22:22:07
ben aucun serveur web n'est sûr à 100%, et encore moins IIS. donc normalement, non, on peut pas voir les sources. mais IIS se prends régulièrement des exploitations de nouvelles faille dans la tronche, et il suffit que le méchant hacker qui va t'attaquer soit bon, et se tienne au courant des nouvelles failles, il pourra certainement accéder au source de tes pages.
avec apache, il y a le même risque hein ! sauf que la légende veut que iis est plus vulnérable.
quand on voit les stats réelles du nombre de faille corrigées et leur score critique, c'est pas aussi évidement, cette légende doit provenir surtout du fait que iis est une cible privilégiée, comme tout ce qui tourne sous windows.
Marsh Posté le 10-03-2004 à 00:16:20
Je vois.... C'est bizarre comment certains arrive à faire ça, faudrait peut etre que je me renseigne... sur tout ce qui touche au hacking.
Marsh Posté le 18-02-2004 à 12:01:12
Bonjour, j'ai des catégories
Et je voudrais pouvoir gérer des profils utilisateurs qui ont le droit d'acceder à certaines catégories ou non :
1 interdit
2 visualisation
3 administrateur.
Je pense utiliser les sessions
avec mot de passe dans une base
et récupérer les valeurs dans la base aussi pour le profil associé :
ex :
catégorie1 admin
catégorie2 interdit
catégorie3 visualisation
et donc stocker en variable de sessions :
session("categorie1" ) = "admin"
etc..;
(j'ai 5 catégories)
ça vous semble correct?
merciiiiiiiiii