summaryrefslogtreecommitdiffstats
path: root/server/bin/listclientmode
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2013-03-07 12:27:15 +0000
committerramon <ramongomez@us.es>2013-03-07 12:27:15 +0000
commit75f9c01c51d27ac4827344c650cb9434c9490aa0 (patch)
tree98166d9e4c2c11f87c7375094da290f88a5187d4 /server/bin/listclientmode
parent3d297dcb79dfec91704f4efbea2bf818b7f788f9 (diff)
#584: Solución problema de inyección SQL en comandos {{{listclientmode}}} y {{{setclientmode}}}.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3668 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'server/bin/listclientmode')
-rwxr-xr-xserver/bin/listclientmode6
1 files changed, 4 insertions, 2 deletions
diff --git a/server/bin/listclientmode b/server/bin/listclientmode
index ba86f141..4e30731a 100755
--- a/server/bin/listclientmode
+++ b/server/bin/listclientmode
@@ -26,9 +26,11 @@ fi
# Obtener datos de acceso a la Base de datos.
source $SERVERCONF
+# Sustituir caracteres ' por \' para evitar inyección SQL.
+RESOURCE="${1//\'/\'}"
# Comprobar si se recibe nombre de aula o de equipo.
IDAULA=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
- "SELECT idaula FROM aulas WHERE nombreaula='$1';")
+ "SELECT idaula FROM aulas WHERE nombreaula='$RESOURCE';")
if [ -n "$IDAULA" ]; then
# Aula encontrada
@@ -37,7 +39,7 @@ if [ -n "$IDAULA" ]; then
else
# Buscar ordenador
PCNAME=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
- "SELECT nombreordenador FROM ordenadores WHERE nombreordenador='$1';")
+ "SELECT nombreordenador FROM ordenadores WHERE nombreordenador='$RESOURCE';")
fi
if [ -z "$PCNAME" ]; then
echo "$PROG: No existe ningún aula o equipo con el nombre \"$1\""