Cuestión : problema de seguridad en el uso de la conexión: un usuario abierto una sesión puede corregir la o su propio perfil

Hola amigos. Encontré un problema de seguridad en mi uso de la conexión. Éste es el uso de NBPTS que ahora es familiar a muchos de usted en el foro de CFML. =) el usuario abierto una sesión A puede corregir la o su propio perfil: ¿rel= " nofollow " del " _blank " del target= de " http://www.nbptsprincipals.org/principal/principal_registration.cfm?UserID=160 " del href= del

.org/principal/principal_registration.cfm de http://www.nbptsprincipals? ¡UserID=160

But simplemente cambiando, en el campo de la localización del hojeador, el valor UserID=160 a otro UserID, ella puede ver y corregir otras identificaciones del usuario también! ¿

Is allí una manera de asegurar identificaciones del usuario? ¿Hay una declaración que puedo agregar a la función del onRequestStart en application.cfc para rechazar corregir de otras identificaciones del usuario? la declaración del

The necesitaría decir: ¿el

* si el usuario abierto una sesión tiene UserRoleID 5, ella puede corregir solamente su UserID.

* si el usuario abierto una sesión tiene UserRoleID 3, él puede corregir identificaciones del usuario con UserRoleID 5, y su propio UserID.

* si el usuario abierto una sesión tiene UserRoleID 1, ella puede corregir todo el UserIDs.

How yo agregaría esa lógica a mi función existente del onRequestStart?

Thank usted como siempre para cualquie advice.

Eric B
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
¡>< notpretty " del class= " del id= " codeSnippet839998 del
 
name= " onRequestStart " del 

    required=/> " verdadero " del " targetPage " del name= de la " secuencia " del type= del   
    securefolders del var del   
    ¡currentFolder del var del    


¡

 ¡ 
    el  
         ¡ 
                el  
          expires= " 7 " " del value= " #form.UserEmail# " de " SaveUserEmail del name= del  
         
         
        ¡ 
        checkLogin del  
           ¡template= " LoginForm.cfm " del   
           false> del  
         
    ¡ 
     
 
¡




¡
     ¡listFindNoCase del    
       ¡el    
           template= " LoginForm.cfm " del 
            el message= del 
             
       ¡   
           expression= " #currentFolder# " del   
              value= " admin " del   
                  ¡eq del listFind del    
                      template= " LoginError.cfm " del 
                        
                    
                
              value= " enlace " del   
                  ¡eq del listFind del    
                      template= " LoginError.cfm " del 
                        
                    
                
              ¡   
                
             
       ¡   
    ¡   
    
    ¡
         
      
      clearSessionVariables del 
      
      false> del 
  

    
    
         
         
             ¡                                              
    el 
      
    

   
  ¡
class= del

Respuesta : problema de seguridad en el uso de la conexión: un usuario abierto una sesión puede corregir la o su propio perfil

Bien, adentro

      {33, “B”}, {22, “C”}, {22, “D”}, {44, “E”}, {22, “D”}

usted tiene que entrada muy duplicado - apenas quitarla después de que se clasifique, e.g.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
#include  
#include  
#include  
#include  
#include  
#include  
#include  

usar namespace std;

struct StudentAttempt
{
   distancia de la internacional;
   studentName de la secuencia;
};

bool cmpEntry (StudentAttempt dejado, la derecha de StudentAttempt) {
   == de vuelta right.studentName del && left.studentName del == right.distance de left.distance;
}
cmpAttempts del bool (StudentAttempt dejado, la derecha de StudentAttempt) {
   si (left.distance < right="">y v, StudentAttempt& sa, stringstream& ss del const) {

   vector:: const_iterator i = v.begin ();
  size_t SZ = 0;
  el bFirst del bool = verdad;

  ¡mientras que (i! = v.end ()) {

    si (isDistEqual (*i, sa)) {
    
      ¡si (! studentName de los ss del bFirst <>);
      ++sz;
    }

    ++i; 
    bFirst = falso;
  }

  SZ de vuelta;
}
 

cañería de la internacional () {

   throwDist de StudentAttempt [] = {
      {50, “A”},      {22, “A”},      {16, “B”},      {44, “C”},
      {33, “D”},      {34, “E”},      {22, “F”},      {21, “G”},
      {49, “A”},      {5, “B”},      {2, “C”},      {22, “A”},
      {33, “B”},      {22, “C”},      {22, “D”},      {44, “E”}, {22, “D”}
   };


   sistema manejado;

   internacional len = sizeof ()/sizeof (throwDist [0] del throwDist);

   dist del vector (el throwDist, throwDist + len);
   vector:: iterator él = dist.begin ();

   clase (dist.begin (), dist.end (), cmpAttempts);

   único (dist.begin (), dist.end (), cmpEntry); // quita los duplicados idénticos del vector clasificado


   para (; ¡él! = dist.end (); it++) {

      stringstream ss;

      pares:: iterator, bool> p = handled.insert (it->distance);

      ¡si (! p.second) continúan; // dirigido ya

      si (0  < printAllEqual="">
           
Otras soluciones  
 
programming4us programming4us