Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Trigger que restrinja el acceso por Ip

Estas en el tema de Trigger que restrinja el acceso por Ip en el foro de Bases de Datos General en Foros del Web. ¿cómo generar un Trigger que restrinja el acceso por Ip? Tengo una BD con una tabla llamada contactos. Que almacena unos datos en sus diferentes ...
  #1 (permalink)  
Antiguo 19/10/2016, 03:04
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 14 años, 4 meses
Puntos: 4
Trigger que restrinja el acceso por Ip

¿cómo generar un Trigger que restrinja el acceso por Ip?

Tengo una BD con una tabla llamada contactos.

Que almacena unos datos en sus diferentes columnas:

- nombre, fecha, titulo, comentario, categoria_anuncio, ip

Tengo una columna llamada ip que almacena todas las ip de los clientes.

Una persona, con una ip determinada me introduce datos, y quiero denegarle el acceso a la tabla.


No tengo muchos conocimientos en Trigger, pero navegando encontré este código, y me gustaría saber si lo puedo aprovechar.
¿cómo quedaría el Trigger sabiendo que mi BD se llama contactos y la columna a denegar el acceso "ip"?


Tengo el siguiente ejemplo, pero no consigo relacionarlo con mis campos
Código SQL:
Ver original
  1. CREATE TRIGGER AllowLocalOnly
  2. ON ALL SERVER
  3. FOR LOGON
  4. AS
  5. BEGIN
  6.     DECLARE @IP VARCHAR(500)
  7.     SET @IP = EVENTDATA().VALUE('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(500)')
  8.     IF @IP IN ('154.70.110.188', '154.70.110.188')
  9.     BEGIN
  10.         Print '<span id="IL_AD10" class="IL_AD">Capture</span> tu IP ' + @IP
  11.         ROLLBACK TRANSACTION
  12.     END
  13. END
  14. GO

o algo así

Código MySQL:
Ver original
  1. delimiter |
  2. CREATE TRIGGER deleteip
  3.      DELETE FROM contactos WHERE ip = 000.000.000.00;
  4.   END;
  5. |
  6.  
  7. delimiter ;


pruebo realizando trigger con esta sentencia, filtrándome yo también, pero los datos se introducen en la BD y no me filtra mi "ip"

Código SQL:
Ver original
  1. DELETE FROM contactos WHERE ip = '154.70.110.188' AND '12.345.678.90'


¿algún ejemplo válido que me evite que ciertas "ip" puedan ingresar datos en la BD?


una vez modificado, ¿cómo lo activo, desde dónde lo ejecuto en Mysql?

¿lo copio y lo pego en "definición" desde disparadores poniendo un tiempo "before"?

o lo lanzo desde la pestaña SQL


Otra opción que no descarto, es hacer un trigger que me cambie la categoría del anuncio a "borrado", de esta manera, aunque permanezca en la BD, no se mostrará por el navegador.

Me funciona correctamente si lo lanzo desde SQL. pero si lo quiero hacer trigger para automatizarlo, no funciona.

Código SQL:
Ver original
  1. UPDATE contactos SET categoria_anuncio = 'borrado' WHERE ip = '12.345.678.90'




Muchas gracias

Última edición por rafaxusirati; 19/10/2016 a las 07:04
  #2 (permalink)  
Antiguo 19/10/2016, 07:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Trigger que restrinja el acceso por Ip

Que manejador de bases de datos estas usando?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 19/10/2016, 07:56
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Trigger que restrinja el acceso por Ip

Perdona por la parrafada, pero no se que pides exactamente.

Código HTML:
Tipo de servidor: MySQL
Versión del servidor: 5.1.73-log - MySQL Community Server (GPL)
Versión del protocolo: 10
Conjunto de caracteres del servidor: UTF-8 Unicode (utf8)
Servidor web

Apache/2.2.22
Versión del cliente de base de datos: libmysql - mysqlnd 5.0.10 - 20111026 - $Id: xxxxxx
extensión PHP: mysqli Documentación
phpMyAdmin

Acerca de esta versión: 4.1.14.8

___

Motor de almacenamiento	Descripción
InnoDB	Supports transactions, row-level locking, and foreign keys
MRG_MYISAM	Collection of identical MyISAM tables
BLACKHOLE	/dev/null storage engine (anything you write to it disappears)
CSV	CSV storage engine
MEMORY	Hash based, stored in memory, useful for temporary tables
FEDERATED	Federated MySQL storage engine
ARCHIVE	Archive storage engine
MyISAM	Default engine as of MySQL 3.23 with great performance
  #4 (permalink)  
Antiguo 24/10/2016, 02:11
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Respuesta: Trigger que restrinja el acceso por Ip

loading.......

Esto deberias controlarlo a nivel de programacion, ya que segun veo tu trigger el IP CAPTURADO siempre sera la del cliente que ha conectado a tu base de datos, o sea 127.0.0.1 ( o el IP host del servidor que conecta tu servidor mysql ). Con cliente me refiero al que ha usado user/pass en mysql y no as'i el ip del usuario que esta usando la p'agina web.

connection closed.
__________________

Maborak Technologies
  #5 (permalink)  
Antiguo 24/10/2016, 10:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Trigger que restrinja el acceso por Ip

Ya lo dice la teoria, "El 99.99% de las verificaciones deben hacerse en la capa cliente"
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 24/10/2016, 17:45
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Trigger que restrinja el acceso por Ip

Gracias por la aclaración.

Realmente el "ip" lo recoge un campo en el formulario (campo oculto), y posteriormente es enviado a la BD, junto con el nombre y otros datos... mi intención era denegar el acceso a la BD de algunos "ip maliciosos".

___


¿entiendo que no se puede implementar un trigger para filtrar datos "ip"?

¿que tipo de filtro me recomendáis para no permitir la entrada de información a la BD proveniente de un formulario .php?

¿debería hacer un filtro en el formulario?

¿de qué manera?

¿algún ejemplo sencillo, a la vez que práctico?

Muchas gracias.

Última edición por rafaxusirati; 25/10/2016 a las 07:17
  #7 (permalink)  
Antiguo 25/10/2016, 10:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Trigger que restrinja el acceso por Ip

Cita:
mi intención era denegar el acceso a la BD de algunos "ip maliciosos".
TE conviene usar webservices para validar eso. Hay algunos sitios dedicados al tema que proveen APIs para consumir su servicio.

Por ejemplo: http://www.stopforumspam.com/search
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 25/10/2016, 11:57
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 98
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Trigger que restrinja el acceso por Ip

gracias, me pongo en ello


Un saludo

Última edición por rafaxusirati; 25/10/2016 a las 15:53

Etiquetas: ip, tabla, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:36.