2010-09-27 4 views
6

Estoy escribiendo una aplicación PHP que gestiona algunas entradas LDAP. Tengo una página que muestra las entradas de una rama determinada y el filtrado en algunas ObjectClasses (solo para ciertos usuarios autorizados, etc., etc.).¿Es seguro pasar filtros de búsqueda "sin procesar" a la función ldap_search()?

Me preguntaba si es seguro pasar filtros 'crudos' definidos por url a la función ldap_search(), o esto podría traer problemas de seguridad de cualquier tipo.

El filtro que se establecerá será entonces algo así como:

"(&(&(objectClass=myClass1)(objectClass=myClass2))". $_GET['filter'] .")" 

Por supuesto, voy a Nunca escribir algo como esto en SQL, pero utilizando las funciones de LDAP? No veo ningún riesgo posible de hacer esto, ¿estoy equivocado?

NOTA: No me preocupan las cosas como la sintaxis de filtros incorrecta, etc. ya que estoy escapando en otro lugar, mientras genero la URL. En el caso de filtros definidos a mano con errores, está bien mostrar un error al usuario.

Respuesta

2

A diferencia de las consultas SQL, las consultas de búsqueda LDAP no hacen actualizaciones, por lo que es muy poco probable que puedan cambiar nada. Además, es muy poco probable que puedan esquivar los permisos, ya que los permisos se basan en el DN conectado y NO en la consulta de búsqueda.

Trabajé con LDAP durante aproximadamente 3 años y nunca me preocupé por esto, pero por supuesto no les dije a los usuarios con qué tipo de db estaban interactuando.

IMO está bien hacerlo así.

Cuestiones relacionadas