Bonjour,1. les entrèes doivent être systématiquement traitées afin
d'éliminer les caractères n'ayant rien à y faire ( '&', '$', ';',
',', '!', ':', '', etc) selon la nature de la zone de saisie (
alpha, alphanum, num, flottant,
etc) ; ceci concerne également le contenu du POST (ou du GET) :
les champs
doivent être traités avant usage dans une fonction ou une
méthode.
Est-ce suffisant d'interdire explicitement certains caractères ? Pour le
moment j'ai plutôt tendance à lister les caractères explicitement
autorisés.
La bonne règle en sécurité est : << tout ce qui n'est pas expressément
via http://www.toto.com quelle que soit la vue réellement
affichée derrière. Ainsi que l'on tente
www.toto.com/tartampion.html ou
www.toto.com?TEST=toto&SQLREQUEST=SELECT+ ... cela n'a aucune
influence étant donné que seul l'état de l'utilisateur (conservé
dans un objet Session) indique quelle est la vue réellement
utilisée ;
Je n'ai pas compris comment mettre ça en oeuvre. Tu stockes dans ta
session les différents choix possibles de l'utilisateur par rapport à la
dernière page générée ?
Tu as une page avec 3 liens http, un FORM pour
une recherche et un FORM de saisie de tes coordonnées, comment peux-tu
prévoir à l'avance quelle "vue" il va falloir afficher ? Une sorte
d'arbre de décision ?
Non. A l'utilisateur est associé un état et c'est cet état qui détermine la
3. A l'arrière j'ajoute que les erreurs doivent être traitées
correctement
Oui, sans aucun doute.(le modèle des exceptions est utile pour cela)
Mouais, enfin là on rentre dans de l'implémentation et en ce qui me
concerne, je ne cite qu'un seul exemple de gestion des exceptions : le
premier vol d'ariane V (boum). Je dirais qu'au contraire, au lieu de
laisser le code appelant se démm....er avec l'exception, plus vite on la
gère, mieux ça vaut, mais on va arriver vite à la querelle de clochers.
Le pb du premier vol d'Ariane V était, si mes souvenirs sont bons, une
Bien entendu, un modèle objet bien fait est très utile à l'implantation
de ces quelques règles en permettant le découpage des différentes étapes.
Bien entendu, on peut parfaitement s'en passer et faire plus simple.
Mais là encore, il s'agit de querelles de clocher.
Pas forcément. S'il s'agit de développer 3 pages qui se font la gueule
Bonjour,
1. les entrèes doivent être systématiquement traitées afin
d'éliminer les caractères n'ayant rien à y faire ( '&', '$', ';',
',', '!', ':', '', etc) selon la nature de la zone de saisie (
alpha, alphanum, num, flottant,
etc) ; ceci concerne également le contenu du POST (ou du GET) :
les champs
doivent être traités avant usage dans une fonction ou une
méthode.
Est-ce suffisant d'interdire explicitement certains caractères ? Pour le
moment j'ai plutôt tendance à lister les caractères explicitement
autorisés.
La bonne règle en sécurité est : << tout ce qui n'est pas expressément
via http://www.toto.com quelle que soit la vue réellement
affichée derrière. Ainsi que l'on tente
www.toto.com/tartampion.html ou
www.toto.com?TEST=toto&SQLREQUEST=SELECT+ ... cela n'a aucune
influence étant donné que seul l'état de l'utilisateur (conservé
dans un objet Session) indique quelle est la vue réellement
utilisée ;
Je n'ai pas compris comment mettre ça en oeuvre. Tu stockes dans ta
session les différents choix possibles de l'utilisateur par rapport à la
dernière page générée ?
Tu as une page avec 3 liens http, un FORM pour
une recherche et un FORM de saisie de tes coordonnées, comment peux-tu
prévoir à l'avance quelle "vue" il va falloir afficher ? Une sorte
d'arbre de décision ?
Non. A l'utilisateur est associé un état et c'est cet état qui détermine la
3. A l'arrière j'ajoute que les erreurs doivent être traitées
correctement
Oui, sans aucun doute.
(le modèle des exceptions est utile pour cela)
Mouais, enfin là on rentre dans de l'implémentation et en ce qui me
concerne, je ne cite qu'un seul exemple de gestion des exceptions : le
premier vol d'ariane V (boum). Je dirais qu'au contraire, au lieu de
laisser le code appelant se démm....er avec l'exception, plus vite on la
gère, mieux ça vaut, mais on va arriver vite à la querelle de clochers.
Le pb du premier vol d'Ariane V était, si mes souvenirs sont bons, une
Bien entendu, un modèle objet bien fait est très utile à l'implantation
de ces quelques règles en permettant le découpage des différentes étapes.
Bien entendu, on peut parfaitement s'en passer et faire plus simple.
Mais là encore, il s'agit de querelles de clocher.
Pas forcément. S'il s'agit de développer 3 pages qui se font la gueule
Bonjour,1. les entrèes doivent être systématiquement traitées afin
d'éliminer les caractères n'ayant rien à y faire ( '&', '$', ';',
',', '!', ':', '', etc) selon la nature de la zone de saisie (
alpha, alphanum, num, flottant,
etc) ; ceci concerne également le contenu du POST (ou du GET) :
les champs
doivent être traités avant usage dans une fonction ou une
méthode.
Est-ce suffisant d'interdire explicitement certains caractères ? Pour le
moment j'ai plutôt tendance à lister les caractères explicitement
autorisés.
La bonne règle en sécurité est : << tout ce qui n'est pas expressément
via http://www.toto.com quelle que soit la vue réellement
affichée derrière. Ainsi que l'on tente
www.toto.com/tartampion.html ou
www.toto.com?TEST=toto&SQLREQUEST=SELECT+ ... cela n'a aucune
influence étant donné que seul l'état de l'utilisateur (conservé
dans un objet Session) indique quelle est la vue réellement
utilisée ;
Je n'ai pas compris comment mettre ça en oeuvre. Tu stockes dans ta
session les différents choix possibles de l'utilisateur par rapport à la
dernière page générée ?
Tu as une page avec 3 liens http, un FORM pour
une recherche et un FORM de saisie de tes coordonnées, comment peux-tu
prévoir à l'avance quelle "vue" il va falloir afficher ? Une sorte
d'arbre de décision ?
Non. A l'utilisateur est associé un état et c'est cet état qui détermine la
3. A l'arrière j'ajoute que les erreurs doivent être traitées
correctement
Oui, sans aucun doute.(le modèle des exceptions est utile pour cela)
Mouais, enfin là on rentre dans de l'implémentation et en ce qui me
concerne, je ne cite qu'un seul exemple de gestion des exceptions : le
premier vol d'ariane V (boum). Je dirais qu'au contraire, au lieu de
laisser le code appelant se démm....er avec l'exception, plus vite on la
gère, mieux ça vaut, mais on va arriver vite à la querelle de clochers.
Le pb du premier vol d'Ariane V était, si mes souvenirs sont bons, une
Bien entendu, un modèle objet bien fait est très utile à l'implantation
de ces quelques règles en permettant le découpage des différentes étapes.
Bien entendu, on peut parfaitement s'en passer et faire plus simple.
Mais là encore, il s'agit de querelles de clocher.
Pas forcément. S'il s'agit de développer 3 pages qui se font la gueule
Je pense que c'est l'idée, mais cela a des conséquences facheuses: un
même utilisateur ne peut être connecté deux fois avec la même session (et
parfois, par exemple avec des cookies, il ne peut pas se connecter deux
fois avec deux sessions différentes) dans deux fenêtres différentes, sans
perturbations. Pour ceux qui usent des onglets, c'est très pénalisant,
c'est pour ca que personnellement je ne recommande pas trop cette piste.
De quoi parlons-nous là ?
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
En plus je suis loin d'être sur que c'est positif pour la sécurité.
Certe du côté du site un utilisateur est dans un état (au sens automate)
bien défini, mais un utilisateur peut croire qu'il est en sécurité après
un surf alors qu'en relancant une page bookmarkée on se retrouve
connecté ;
FAUX. Si l'utilisateur a éteint son navigateur ou a poireauté jusqu'à
sur une autre page certes, mais "connecté" (au sens avec
certaines actions qui ne doivent pas être possible sans login/passwd au
minimum). Même un cookie de session est plus sur :-/ (en plus la gestion
du bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
Je pense que c'est l'idée, mais cela a des conséquences facheuses: un
même utilisateur ne peut être connecté deux fois avec la même session (et
parfois, par exemple avec des cookies, il ne peut pas se connecter deux
fois avec deux sessions différentes) dans deux fenêtres différentes, sans
perturbations. Pour ceux qui usent des onglets, c'est très pénalisant,
c'est pour ca que personnellement je ne recommande pas trop cette piste.
De quoi parlons-nous là ?
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
En plus je suis loin d'être sur que c'est positif pour la sécurité.
Certe du côté du site un utilisateur est dans un état (au sens automate)
bien défini, mais un utilisateur peut croire qu'il est en sécurité après
un surf alors qu'en relancant une page bookmarkée on se retrouve
connecté ;
FAUX. Si l'utilisateur a éteint son navigateur ou a poireauté jusqu'à
sur une autre page certes, mais "connecté" (au sens avec
certaines actions qui ne doivent pas être possible sans login/passwd au
minimum). Même un cookie de session est plus sur :-/ (en plus la gestion
du bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.
Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
Je pense que c'est l'idée, mais cela a des conséquences facheuses: un
même utilisateur ne peut être connecté deux fois avec la même session (et
parfois, par exemple avec des cookies, il ne peut pas se connecter deux
fois avec deux sessions différentes) dans deux fenêtres différentes, sans
perturbations. Pour ceux qui usent des onglets, c'est très pénalisant,
c'est pour ca que personnellement je ne recommande pas trop cette piste.
De quoi parlons-nous là ?
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
En plus je suis loin d'être sur que c'est positif pour la sécurité.
Certe du côté du site un utilisateur est dans un état (au sens automate)
bien défini, mais un utilisateur peut croire qu'il est en sécurité après
un surf alors qu'en relancant une page bookmarkée on se retrouve
connecté ;
FAUX. Si l'utilisateur a éteint son navigateur ou a poireauté jusqu'à
sur une autre page certes, mais "connecté" (au sens avec
certaines actions qui ne doivent pas être possible sans login/passwd au
minimum). Même un cookie de session est plus sur :-/ (en plus la gestion
du bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
(re) bonjour,
Et merci aux contributeurs du thread. Je vais essayer de faire une
synthèse des risques et de leur contre-mesure, pour le moment, j'ai
l'impression que se dégagent deux types d'acteurs :
- le développeur
- le responsable du déploiement de l'application.
Hum, pourquoi ne pas parler simplement du chef de projet.
(re) bonjour,
Et merci aux contributeurs du thread. Je vais essayer de faire une
synthèse des risques et de leur contre-mesure, pour le moment, j'ai
l'impression que se dégagent deux types d'acteurs :
- le développeur
- le responsable du déploiement de l'application.
Hum, pourquoi ne pas parler simplement du chef de projet.
(re) bonjour,
Et merci aux contributeurs du thread. Je vais essayer de faire une
synthèse des risques et de leur contre-mesure, pour le moment, j'ai
l'impression que se dégagent deux types d'acteurs :
- le développeur
- le responsable du déploiement de l'application.
Hum, pourquoi ne pas parler simplement du chef de projet.
La bonne règle en sécurité est : << tout ce qui n'est pas expressément
autorisé est interdit >>.
Toutefois on pourra, pour des raisons de simplicité, regrouper les besoins
en familles : num, alpha, alphanum et texte sans caractère de ponctuation
puis texte avec caractères de ponctuation triés sur le volet (pas de $, de
';', de '?', de '', de '~', de '&', de '^', de '[', de ']', de '(', de
')', de '{', de '}', de '|', de ''', de '`', de '!', de ':', de '*', de '"'
dans la mesure du possible.
Là l'utilisateur va saisir quelques trucs et soumettre la vue.
On repasse donc dans le SWITCH avec toujours la valeur '1' mais cette
fois-ci, étant donné que nous avons des champs POST positionnés (et
filtrés), nous entrons dans un SOUS-SWITCH qui va, outre peut-être formuler
des requêtes (authentification par exemple) et positionner d'autres
variables, prendre une décision : quelle est la prochaine vue à atribuer à
notre utilisateur ?
Ce source unique simplifie grandement la maintenance (tout est au même
endroit) et est plus lisible qu'une multitude de fichiers disséminés un peu
partout dont on oublie le fil à force de passer de l'un à l'autre.
Dans sécurité il y a simplicité et bon sens.
Le pb du premier vol d'Ariane V était, si mes souvenirs sont bons, une
consigne de vol (vitesse horizontale) qui n'avait pas été changée par
rapport à Ariane IV. Même sans gestion par exception la catastrophe était
annoncée.
Si la mienne est bonne aussi, c'était une exception mathématique non
Pour la petite histoire ce n'est pas forcément une querelle de presbytères
mais une question de priorité. Gérer les erreurs au niveau le plus bas
c'est sans doute intellectuellement satisfaisant mais conduit
irrémédiablement à un code lourd.
M'enfin ce n'est pas le sujet.
Agreed. Même si en PHP je crains que ça ne conduise à de belles horreurs
La bonne règle en sécurité est : << tout ce qui n'est pas expressément
autorisé est interdit >>.
Toutefois on pourra, pour des raisons de simplicité, regrouper les besoins
en familles : num, alpha, alphanum et texte sans caractère de ponctuation
puis texte avec caractères de ponctuation triés sur le volet (pas de $, de
';', de '?', de '', de '~', de '&', de '^', de '[', de ']', de '(', de
')', de '{', de '}', de '|', de ''', de '`', de '!', de ':', de '*', de '"'
dans la mesure du possible.
Là l'utilisateur va saisir quelques trucs et soumettre la vue.
On repasse donc dans le SWITCH avec toujours la valeur '1' mais cette
fois-ci, étant donné que nous avons des champs POST positionnés (et
filtrés), nous entrons dans un SOUS-SWITCH qui va, outre peut-être formuler
des requêtes (authentification par exemple) et positionner d'autres
variables, prendre une décision : quelle est la prochaine vue à atribuer à
notre utilisateur ?
Ce source unique simplifie grandement la maintenance (tout est au même
endroit) et est plus lisible qu'une multitude de fichiers disséminés un peu
partout dont on oublie le fil à force de passer de l'un à l'autre.
Dans sécurité il y a simplicité et bon sens.
Le pb du premier vol d'Ariane V était, si mes souvenirs sont bons, une
consigne de vol (vitesse horizontale) qui n'avait pas été changée par
rapport à Ariane IV. Même sans gestion par exception la catastrophe était
annoncée.
Si la mienne est bonne aussi, c'était une exception mathématique non
Pour la petite histoire ce n'est pas forcément une querelle de presbytères
mais une question de priorité. Gérer les erreurs au niveau le plus bas
c'est sans doute intellectuellement satisfaisant mais conduit
irrémédiablement à un code lourd.
M'enfin ce n'est pas le sujet.
Agreed. Même si en PHP je crains que ça ne conduise à de belles horreurs
La bonne règle en sécurité est : << tout ce qui n'est pas expressément
autorisé est interdit >>.
Toutefois on pourra, pour des raisons de simplicité, regrouper les besoins
en familles : num, alpha, alphanum et texte sans caractère de ponctuation
puis texte avec caractères de ponctuation triés sur le volet (pas de $, de
';', de '?', de '', de '~', de '&', de '^', de '[', de ']', de '(', de
')', de '{', de '}', de '|', de ''', de '`', de '!', de ':', de '*', de '"'
dans la mesure du possible.
Là l'utilisateur va saisir quelques trucs et soumettre la vue.
On repasse donc dans le SWITCH avec toujours la valeur '1' mais cette
fois-ci, étant donné que nous avons des champs POST positionnés (et
filtrés), nous entrons dans un SOUS-SWITCH qui va, outre peut-être formuler
des requêtes (authentification par exemple) et positionner d'autres
variables, prendre une décision : quelle est la prochaine vue à atribuer à
notre utilisateur ?
Ce source unique simplifie grandement la maintenance (tout est au même
endroit) et est plus lisible qu'une multitude de fichiers disséminés un peu
partout dont on oublie le fil à force de passer de l'un à l'autre.
Dans sécurité il y a simplicité et bon sens.
Le pb du premier vol d'Ariane V était, si mes souvenirs sont bons, une
consigne de vol (vitesse horizontale) qui n'avait pas été changée par
rapport à Ariane IV. Même sans gestion par exception la catastrophe était
annoncée.
Si la mienne est bonne aussi, c'était une exception mathématique non
Pour la petite histoire ce n'est pas forcément une querelle de presbytères
mais une question de priorité. Gérer les erreurs au niveau le plus bas
c'est sans doute intellectuellement satisfaisant mais conduit
irrémédiablement à un code lourd.
M'enfin ce n'est pas le sujet.
Agreed. Même si en PHP je crains que ça ne conduise à de belles horreurs
Je pense que c'est l'idée, mais cela a des conséquences facheuses: un
même utilisateur ne peut être connecté deux fois avec la même session
(et parfois, par exemple avec des cookies, il ne peut pas se connecter
deux fois avec deux sessions différentes) dans deux fenêtres
différentes, sans perturbations. Pour ceux qui usent des onglets,
c'est très pénalisant, c'est pour ca que personnellement je ne
recommande pas trop cette piste.
De quoi parlons-nous là ?
De sécurité ou de plaisir de l'utilisateur ? Pourquoi autoriserait-on un
utilisateur à se connecter 2 fois (avec le même identifiant s'entend) ?
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
sur une autre page certes, mais "connecté" (au sens avec certaines
actions qui ne doivent pas être possible sans login/passwd au minimum).
Même un cookie de session est plus sur :-/ (en plus la gestion du
bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
Je pense que c'est l'idée, mais cela a des conséquences facheuses: un
même utilisateur ne peut être connecté deux fois avec la même session
(et parfois, par exemple avec des cookies, il ne peut pas se connecter
deux fois avec deux sessions différentes) dans deux fenêtres
différentes, sans perturbations. Pour ceux qui usent des onglets,
c'est très pénalisant, c'est pour ca que personnellement je ne
recommande pas trop cette piste.
De quoi parlons-nous là ?
De sécurité ou de plaisir de l'utilisateur ? Pourquoi autoriserait-on un
utilisateur à se connecter 2 fois (avec le même identifiant s'entend) ?
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
sur une autre page certes, mais "connecté" (au sens avec certaines
actions qui ne doivent pas être possible sans login/passwd au minimum).
Même un cookie de session est plus sur :-/ (en plus la gestion du
bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.
Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
Je pense que c'est l'idée, mais cela a des conséquences facheuses: un
même utilisateur ne peut être connecté deux fois avec la même session
(et parfois, par exemple avec des cookies, il ne peut pas se connecter
deux fois avec deux sessions différentes) dans deux fenêtres
différentes, sans perturbations. Pour ceux qui usent des onglets,
c'est très pénalisant, c'est pour ca que personnellement je ne
recommande pas trop cette piste.
De quoi parlons-nous là ?
De sécurité ou de plaisir de l'utilisateur ? Pourquoi autoriserait-on un
utilisateur à se connecter 2 fois (avec le même identifiant s'entend) ?
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
sur une autre page certes, mais "connecté" (au sens avec certaines
actions qui ne doivent pas être possible sans login/passwd au minimum).
Même un cookie de session est plus sur :-/ (en plus la gestion du
bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
De quoi parlons-nous là ?
De sécurité ou de plaisir de l'utilisateur ?
Pourquoi autoriserait-on un utilisateur à se connecter 2 fois (avec le même
identifiant s'entend) ? Là je ne comprends pas bien.
Lorsque vous êtes sur un site marchand vous pouvez être connecté 2 fois à la
banque ?
Ca me rappelle la discussion qui traîne depuis des mois sur un autre ng au
sujet de l'antispam. D'un côté tout le monde en a marre mais lorsqu'on
propose des solutions, certes contraignantes mais efficaces, les mêmes
personnes râlent qu'ils ne vont plus pouvoir expédier du mail de chez eux
en utilisant le domaine de courriers de l'entreprise, qu'ils n'apprécient
pas que leur entreprise ne pourra plus relayer leur courrier à destination
de leur BAL d'entreprise vers une de leurs BAL privées, etc, etc.
C'est toujours la même chose : on veut de la sécurité mais pas de
contraintes.
Choisissez. J'ai exposé une méthode, libre à ceux qui l'ont lu de l'utiliser
ou non.
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
En plus je suis loin d'être sur que c'est positif pour la sécurité.
Certe du côté du site un utilisateur est dans un état (au sens automate)
bien défini, mais un utilisateur peut croire qu'il est en sécurité après
un surf alors qu'en relancant une page bookmarkée on se retrouve
connecté ;
FAUX. Si l'utilisateur a éteint son navigateur ou a poireauté jusqu'à
l'expiration de session (disons 20 minutes) il a beau avoir bookmarqué ce
qu'il veut il revient au panneau d'authentification (son état est '1' pour
reprendre mon exemple).
sur une autre page certes, mais "connecté" (au sens avec
certaines actions qui ne doivent pas être possible sans login/passwd au
minimum). Même un cookie de session est plus sur :-/ (en plus la gestion
du bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
ajout d'un nouveau 'case of' par nouvelle vue ;
écriture de la ou des nouvelles vues (il faut bien en passer par là) ;
modification éventuelle des spécificateurs d'état dans les autres 'case
of' pour le cas où l'arbre de navigation décisionnelle aurait subi des
modifications.
Pour ma part cet arbre est dans un fichier XML et est donc extérieur au
code.
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
De quoi parlons-nous là ?
De sécurité ou de plaisir de l'utilisateur ?
Pourquoi autoriserait-on un utilisateur à se connecter 2 fois (avec le même
identifiant s'entend) ? Là je ne comprends pas bien.
Lorsque vous êtes sur un site marchand vous pouvez être connecté 2 fois à la
banque ?
Ca me rappelle la discussion qui traîne depuis des mois sur un autre ng au
sujet de l'antispam. D'un côté tout le monde en a marre mais lorsqu'on
propose des solutions, certes contraignantes mais efficaces, les mêmes
personnes râlent qu'ils ne vont plus pouvoir expédier du mail de chez eux
en utilisant le domaine de courriers de l'entreprise, qu'ils n'apprécient
pas que leur entreprise ne pourra plus relayer leur courrier à destination
de leur BAL d'entreprise vers une de leurs BAL privées, etc, etc.
C'est toujours la même chose : on veut de la sécurité mais pas de
contraintes.
Choisissez. J'ai exposé une méthode, libre à ceux qui l'ont lu de l'utiliser
ou non.
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
En plus je suis loin d'être sur que c'est positif pour la sécurité.
Certe du côté du site un utilisateur est dans un état (au sens automate)
bien défini, mais un utilisateur peut croire qu'il est en sécurité après
un surf alors qu'en relancant une page bookmarkée on se retrouve
connecté ;
FAUX. Si l'utilisateur a éteint son navigateur ou a poireauté jusqu'à
l'expiration de session (disons 20 minutes) il a beau avoir bookmarqué ce
qu'il veut il revient au panneau d'authentification (son état est '1' pour
reprendre mon exemple).
sur une autre page certes, mais "connecté" (au sens avec
certaines actions qui ne doivent pas être possible sans login/passwd au
minimum). Même un cookie de session est plus sur :-/ (en plus la gestion
du bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
ajout d'un nouveau 'case of' par nouvelle vue ;
écriture de la ou des nouvelles vues (il faut bien en passer par là) ;
modification éventuelle des spécificateurs d'état dans les autres 'case
of' pour le cas où l'arbre de navigation décisionnelle aurait subi des
modifications.
Pour ma part cet arbre est dans un fichier XML et est donc extérieur au
code.
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.
Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
De quoi parlons-nous là ?
De sécurité ou de plaisir de l'utilisateur ?
Pourquoi autoriserait-on un utilisateur à se connecter 2 fois (avec le même
identifiant s'entend) ? Là je ne comprends pas bien.
Lorsque vous êtes sur un site marchand vous pouvez être connecté 2 fois à la
banque ?
Ca me rappelle la discussion qui traîne depuis des mois sur un autre ng au
sujet de l'antispam. D'un côté tout le monde en a marre mais lorsqu'on
propose des solutions, certes contraignantes mais efficaces, les mêmes
personnes râlent qu'ils ne vont plus pouvoir expédier du mail de chez eux
en utilisant le domaine de courriers de l'entreprise, qu'ils n'apprécient
pas que leur entreprise ne pourra plus relayer leur courrier à destination
de leur BAL d'entreprise vers une de leurs BAL privées, etc, etc.
C'est toujours la même chose : on veut de la sécurité mais pas de
contraintes.
Choisissez. J'ai exposé une méthode, libre à ceux qui l'ont lu de l'utiliser
ou non.
Je confirme, je connaissais quelques sites comme ça c'est chiant au
possible.
En quoi est-ce chiant ?
En plus je suis loin d'être sur que c'est positif pour la sécurité.
Certe du côté du site un utilisateur est dans un état (au sens automate)
bien défini, mais un utilisateur peut croire qu'il est en sécurité après
un surf alors qu'en relancant une page bookmarkée on se retrouve
connecté ;
FAUX. Si l'utilisateur a éteint son navigateur ou a poireauté jusqu'à
l'expiration de session (disons 20 minutes) il a beau avoir bookmarqué ce
qu'il veut il revient au panneau d'authentification (son état est '1' pour
reprendre mon exemple).
sur une autre page certes, mais "connecté" (au sens avec
certaines actions qui ne doivent pas être possible sans login/passwd au
minimum). Même un cookie de session est plus sur :-/ (en plus la gestion
du bouzingue doit vite devenir... amusante quand le site évolue.)
Simplissime :
ajout d'un nouveau 'case of' par nouvelle vue ;
écriture de la ou des nouvelles vues (il faut bien en passer par là) ;
modification éventuelle des spécificateurs d'état dans les autres 'case
of' pour le cas où l'arbre de navigation décisionnelle aurait subi des
modifications.
Pour ma part cet arbre est dans un fichier XML et est donc extérieur au
code.
Sinon aussi, à propos de sécurité en général : faire simple[1] est
souvent gage de maintenance aisée et la sécu du bidule peut être plus
facilement assurée.Cela pose un problème aussi si on souhaite laisser la possibilité aux
utilisateurs de mettre en bookmark n'importe quelle page du site.
D'où l'intérêt de ne JAMAIS afficher d'autre URL que celui de l'accueil.
Ce source unique simplifie grandement la maintenance (tout est au même
endroit) et est plus lisible qu'une multitude de fichiers disséminés un peu
partout dont on oublie le fil à force de passer de l'un à l'autre.
Dans sécurité il y a simplicité et bon sens.
Donc c'est dans cette "simplicité" apportée par cette méthode de
développement que se trouve le "plus" de sécurité ou j'ai loupé autre
chose ?
M'enfin ce n'est pas le sujet.
Agreed.
Même si en PHP je crains que ça ne conduise à de belles horreurs
car il va falloir faire la chasse aux exceptions non catchées lors des
tests unitaires (à la charge des développeurs donc) vu que ce n'est pas
un langage compilé. Faudra que je vérifie si en lançant un php -q
toto.php le moteur est capable de signaler les exceptions non catchées.
Ce source unique simplifie grandement la maintenance (tout est au même
endroit) et est plus lisible qu'une multitude de fichiers disséminés un peu
partout dont on oublie le fil à force de passer de l'un à l'autre.
Dans sécurité il y a simplicité et bon sens.
Donc c'est dans cette "simplicité" apportée par cette méthode de
développement que se trouve le "plus" de sécurité ou j'ai loupé autre
chose ?
M'enfin ce n'est pas le sujet.
Agreed.
Même si en PHP je crains que ça ne conduise à de belles horreurs
car il va falloir faire la chasse aux exceptions non catchées lors des
tests unitaires (à la charge des développeurs donc) vu que ce n'est pas
un langage compilé. Faudra que je vérifie si en lançant un php -q
toto.php le moteur est capable de signaler les exceptions non catchées.
Ce source unique simplifie grandement la maintenance (tout est au même
endroit) et est plus lisible qu'une multitude de fichiers disséminés un peu
partout dont on oublie le fil à force de passer de l'un à l'autre.
Dans sécurité il y a simplicité et bon sens.
Donc c'est dans cette "simplicité" apportée par cette méthode de
développement que se trouve le "plus" de sécurité ou j'ai loupé autre
chose ?
M'enfin ce n'est pas le sujet.
Agreed.
Même si en PHP je crains que ça ne conduise à de belles horreurs
car il va falloir faire la chasse aux exceptions non catchées lors des
tests unitaires (à la charge des développeurs donc) vu que ce n'est pas
un langage compilé. Faudra que je vérifie si en lançant un php -q
toto.php le moteur est capable de signaler les exceptions non catchées.
Donc quid ? Est-ce que ça suffit de les transformer en leur équivalent
html (quitte donc à doubler la taille de tous les champs SGBD pour faire
face à l'embonpoint ainsi ajouté) ? Quand on a un truc du genre <SCRIPT
"caché" en %u0003CSCRIPT si on transforme ça en &pct;u003SCRIPT ça
devrait suffire mais est-ce que j'en oublierais pas des tonnes (si,
sûrement) ? Et quand bien même ça suffirait, si l'application exige que
je stocke aussi des données de mise en forme (gras italique souligné par
exemple) je me démmerde comment ?
Et quand bien même ça suffirait, si l'application exige que
je stocke aussi des données de mise en forme (gras italique souligné par
exemple) je me démmerde comment ?
Donc quid ? Est-ce que ça suffit de les transformer en leur équivalent
html (quitte donc à doubler la taille de tous les champs SGBD pour faire
face à l'embonpoint ainsi ajouté) ? Quand on a un truc du genre <SCRIPT
"caché" en %u0003CSCRIPT si on transforme ça en &pct;u003SCRIPT ça
devrait suffire mais est-ce que j'en oublierais pas des tonnes (si,
sûrement) ? Et quand bien même ça suffirait, si l'application exige que
je stocke aussi des données de mise en forme (gras italique souligné par
exemple) je me démmerde comment ?
Et quand bien même ça suffirait, si l'application exige que
je stocke aussi des données de mise en forme (gras italique souligné par
exemple) je me démmerde comment ?
Donc quid ? Est-ce que ça suffit de les transformer en leur équivalent
html (quitte donc à doubler la taille de tous les champs SGBD pour faire
face à l'embonpoint ainsi ajouté) ? Quand on a un truc du genre <SCRIPT
"caché" en %u0003CSCRIPT si on transforme ça en &pct;u003SCRIPT ça
devrait suffire mais est-ce que j'en oublierais pas des tonnes (si,
sûrement) ? Et quand bien même ça suffirait, si l'application exige que
je stocke aussi des données de mise en forme (gras italique souligné par
exemple) je me démmerde comment ?
Et quand bien même ça suffirait, si l'application exige que
je stocke aussi des données de mise en forme (gras italique souligné par
exemple) je me démmerde comment ?
Ainsi, par exemple, on recevra (toujours par GET,
les méthodes POST ne sont pas drôles)
Ainsi, par exemple, on recevra (toujours par GET,
les méthodes POST ne sont pas drôles)
Ainsi, par exemple, on recevra (toujours par GET,
les méthodes POST ne sont pas drôles)
Ainsi, par exemple, on recevra (toujours par GET,
les méthodes POST ne sont pas drôles)
Ahem, et l'url qui indique en clair le joli password qu'on vient de saisir sous
forme d'étoiles dans le formulaire, en protégeant le clavier des regards
indiscrets, pour envoyer ça en https? Comment ça personne ne regarde l'écran par
dessus mon épaule? :)
[1]
Ainsi, par exemple, on recevra (toujours par GET,
les méthodes POST ne sont pas drôles)
Ahem, et l'url qui indique en clair le joli password qu'on vient de saisir sous
forme d'étoiles dans le formulaire, en protégeant le clavier des regards
indiscrets, pour envoyer ça en https? Comment ça personne ne regarde l'écran par
dessus mon épaule? :)
[1]
Ainsi, par exemple, on recevra (toujours par GET,
les méthodes POST ne sont pas drôles)
Ahem, et l'url qui indique en clair le joli password qu'on vient de saisir sous
forme d'étoiles dans le formulaire, en protégeant le clavier des regards
indiscrets, pour envoyer ça en https? Comment ça personne ne regarde l'écran par
dessus mon épaule? :)
[1]