Foros del Web » Programando para Internet » PHP »

Consejos sobre seguridad y/u operatividad

Estas en el tema de Consejos sobre seguridad y/u operatividad en el foro de PHP en Foros del Web. Hola amigos les explico el tema para reciibir opiniones. Imaginemos que tenemos 2 sitios web, el A y el B. El sitio A le pide ...
  #1 (permalink)  
Antiguo 10/11/2004, 15:20
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 19 años, 6 meses
Puntos: 0
Consejos sobre seguridad y/u operatividad

Hola amigos les explico el tema para reciibir opiniones.
Imaginemos que tenemos 2 sitios web, el A y el B.
El sitio A le pide servicios al B, por ejemplo realizar un calculo matematico. Entonces el sitio A le envia al B las variables y el sitio B las recibe, realiza el calculo y le devuelve un resultado.
Estos sitios estan alojados en distintos servidores y no tienen acceso a base de datos, por lo que el traspaso de variables es atraves de formularios.
Mi duda es : cual es la mejor forma de realizar el envio del sitios A a el sitio B.
Es valido poner en el action="http://www.B.cl" y un boton Enviar.

O es mas conveniente poner un link y no un boton.

Quizas alguien halla tenido experencia con algo asi.

Saludos
  #2 (permalink)  
Antiguo 10/11/2004, 16:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues da exactamente igual .. si usas un formulario .. al menos tienes opción de pasar los datos por POST o GET .. si usas un link .. será por GET siempre.

Otros métodos que puedes hacer para no tener que usar botones ni links haciendo el proceso automático completamente sería por sockets usando parte del protocolo del HTTP desde PHP con funciones como fsockopen() o si puedes las librerías cURL (www.php.net/curl)

Un saludo,
  #3 (permalink)  
Antiguo 11/11/2004, 07:29
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 19 años, 6 meses
Puntos: 0
Tiene ventajas usar socket??
  #4 (permalink)  
Antiguo 11/11/2004, 11:46
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 19 años, 6 meses
Puntos: 0
Hola Cluster, creo que utilizare el fsockopen(), pero tengo algunas dudas. Buscando por ahi encontre lo siguiente:

<?php
$servidor= 'www.pagina.cl';
$respuesta ="";
$fp = fsockopen($servidor,80,$errno,$errstr,30);
if(!$fp){
echo $errno .'<br>';
}else{

$urlCompleta ="www.pagina.cl/solicitud.php?n_pago=1";

fputs($fp,$urlCompleta);
while(!feof($fp)){
$respuesta = $respuesta.fgets($fp,128);
}
echo $respuesta;
fclose($fp);
}
?>

Mis dudas son y lo que quiero hacer son:

Al ejecutar la pagina solicitud.php, realiza una consulta a una base de datos, u quiero retornar el resultado de la consulta, puedo hacerlo??

Estoy pasando bien el parametro ($urlCompleta ="www.pagina.cl/solicitud.php?n_pago=1";) o debe pasarse de otra forma??

En resumen como puedo enviar y recibir parametros??

Saludos
  #5 (permalink)  
Antiguo 11/11/2004, 13:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En tu ejemplo .. en $respuesta tienes lo que devolvió la ejecución de tu script.php .. pero del "HTML" (salida) generada y así tendrás que procesarla en tu servidor 2.

El envio de datos lo haces en el URL como parte de las cabeceras HTTP ..

Te recomiendo que veas los ejemplos del manual oficial de PHP ..
www.php.net/fsockopen

Y si tienes oportunidad .. usa las librerías cURL por qué te facilitará esa taréa mucho. Tambien puedes ver otras classes para trabajar con HTTP más comodamente en sitios como www.phpclasses.org

Un saludo,
  #6 (permalink)  
Antiguo 11/11/2004, 13:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 19 años, 6 meses
Puntos: 0
Entonces como estaba enviando los parametros esta mal??

Sabes que al ejecutarlo no me retorna nada, pero si escribo en la ventana del explorador www.pagina.cl/solicitud.php?n_pago=1 si me retorna un valor, que estara fallando??

Saludos
  #7 (permalink)  
Antiguo 11/11/2004, 14:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Insisto que veas los ejemplos que te comenté (en el link que te dejé) .. En tu ejemplo no se vé para nada las peticiones HTTP necesarias (GET .. etc) para componer las cabeceras HTTP que vas a usar en la comunicación con el "socket" abierto.

Es decir .. por mucho que abras un "canal de comunicación" debes de conocer que "lenguaje" hablar entre ellos .. en este caso HTTP.

Un saludo,
  #8 (permalink)  
Antiguo 12/11/2004, 10:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 5
Antigüedad: 19 años, 6 meses
Puntos: 0
Hola de nuevo, creo que debes estar por matarme por hacerte tantas preguntas quizas obvias. Lei toda la documentacion, pero aun no lo logro.
Tengo el sgte codigo:

<?php
$da = fsockopen("www.pagina.cl", 80, $errno, $errstr, 30);
if (!$da) {
echo "$errstr ($errno)<br />\n";
} else {
$salida = "GET test.php / HTTP / 1.1 \r\n";
$salida .= "Host: www.pagina.cl/\r\n";
$salida .= "Connection: Close\r\n\r\n";
fwrite($da, $salida);
while (!feof($da)) {
echo fgets($da, 128);
}
fclose($da);
}
?>


Donde y como le envio y recibo parametro a la pagina???????

Saludos
  #9 (permalink)  
Antiguo 12/11/2004, 10:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, .. es normal que no entiendas donde poner las variables que vas a pasar a tu página (script del lado del servidor) .. Pero es que eso ya no depende de PHP sino del protocolo del HTTP.

Las funciones que usan te permiten como ya te comenté hacer:
1) abrir el puerto. (fsockopen() ...)
2) enviar datos (escribir en ese puerto abierto: tus fputs() o fwrite()
3) recibir respuesta ( el bucle while() que usas con los fgets() ..)
4) cerrar el puerto. (fclose())

Y eso es lo único que hace PHP .. el "lenguaje" que hables por ese "puerto" ya depende del protocolo que estés usando .. en tu caso el HTTP. Esto en PHP y en otros lenguajes del lado del servidor .. no sucede sólo para este caso particular de "sockets" sino para otras cosas como por ejemplo: acceso a base de datos, expresiones regulares .. Es importante conocer esto para saber donde enfocar la busqueda de tutoriales o soluciones.

Si no quieres reinventar la rueda (con el concepto claro ya de lo que estás haciendo ..) puedes usar funciones como esta que alguien en su momento ya desarrolló:
http://www.zend.com/tips/tips.php?id=34&single=1

Y como te comentaba .. si en tu servidor dispones de las extensiones cURL (www.php.net/curl) te ayudarían mucho para esta taréa y sobre todo te prestan más prestaciones (valga la rebundancia) para hacer otras cosas con "sockets".

Un saludo,
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:11.