RE: [PHP-ES] Como generar una firma electronica con SHA1 de forma segura
by Joan Teixido other posts by this author
Nov 20 2006 4:01PM messages near this date
Re: [PHP-ES] Como generar una firma electronica con SHA1 de forma segura
|
Re: [PHP-ES] Como generar una firma electronica con SHA1 de forma segura
Gracias!
SÃ, me entendiste bien... el resumen que has hecho es correcto. La
diferencia és que el resumen de los datos del pago se hace justo en la
pagina anterior y se escoge la forma de pago. En el caso de tarjeta, llamo a
la pagina que genera la firma. Por eso no querÃa que el usuario volviera
otra vez a darle a un submit.
De momento lo tengo como expliqué, ya q por lo q dices creo que voy por buen
camino.
Miraré si puedo cambiar el orden de los pasos y que el submit final ya
genere la firma y asà no tener que pasar por una pagina intermedia.
Gracias,
Joan
-----Missatge original-----
De: Pablo Siciliano [mailto:psiciliano@[...].com]
Enviat: divendres, 17 / novembre / 2006 13:28
Per a: Joan Teixidó
Tema: Re: [PHP-ES] Como generar una firma electronica con SHA1 de forma
segura
Hola Joan.
El problema no pasa por PHP. Ese es un tema de infraestructura web, y
protocolo HTTP.
Al no usarse para páginas web una conexión que quede activa, la única manera
de pasar algo es a través de un request nuevo. Y la única manera de que ese
request sea medianamente seguro es vÃa SSL + Post.
Al margen de eso, repasemos el esquema que nos estás contando:
1) El cliente llena un formulario, presiona un submit y va a otra página.
2) La otra página calcula la firma con sha1 y vuelve a hacer un request con
los datos originales + la firma
3) La pasarela de pago procesa el request anterior, da un resultado y pone
un link para volver al sitio de comercio electrónico.
Si no te entendà bien, decime.
Si te entendà bien, la solución es simple: Además de los hidden, usás el
paso 2) para cumplir una función util para el usuario, no solo para el
sistema. Donde vos ibas a poner un javascript, poné un simple botón de
submit y los hidden imprimiendole además al usuario los datos de la
operación, para que el pueda aceptarla o rechazarla. De esa manera vos te
evitás la incomodidad técnica y el tiene una vista previa de la operación.
Hasta me animarÃa a decir que ese paso estaba pensado asà cuando se
implementaron las pasarelas de pago ...
Espero haber sido de ayuda. Saludos.
Pablo.
----- Original Message -----
From: "Joan Teixidó" <joan.teixido@[...].com>
To: "Php-Es Llista Correu" <php-es@[...].net>
Sent: Thursday, November 16, 2006 7:59 PM
Subject: [PHP-ES] Como generar una firma electronica con SHA1 de forma
segura
Buenas,
He creado un formulario de compra de un libro y una de las formas de pago es
con tarjeta de crédito/debito a través de una pasarela de pago (en este caso
de Caixa Catalunya). A la pasarela de pago le he de enviar estos datos con
post:
Importe, codigo compra , Codigo comercio, importe , moneda i
firmaElectronica (Ds_Merchant_Amount + Ds_Merchant_Order +
Ds_Merchant_MerchantCode + Ds_Merchant_Currency +
Ds_Merchant_MerchantSignature respectivamente)..
La firma electronica se genera con sha1 de la cadena concatenada de los
datos anteriores.clave secreta
Hasta aquà creo que es el procedimiento normal. Ahora mi duda es donde
guardar el valor de la clave secreta? A partir de aquà no se como continuar
de una forma segura. Lo que yo harÃa serÃa:
Para realizar el pago, el formulario nos dirige a la pagina tpv.php en un
directorio privado (es un hosting compartido y no lo puedo poner fuera del
root del sitio). La pagina tpv.php recibe por post la variables que he
comentado, genera el merchantSignature (a partir de la clave secreta que
esta guardada en la misma pagina tpv.php) y reenvia el formulario hacia la
web del banco.
Mi duda és si con PHP se puede enviar datos por POST sin tener primero que
imprimir el form i hacer un submit? Porque si no se puede, lo único que se
me ocurre és poner:
print "datos del form en campos hidden"
i con javascript enviar el formulario?? Que pasa entonces si javascript está
desactivado? Se podrian ver los datos del form (mirando el codigo html) i
descubrir la clave secreta, no?
Os he explicado todo el proceso pq supongo q estoy equivocado i la solucion
pasa por otro sistema.
A ver si me podéis ayudar!
Gracias
(por cierto, aún tengo pendiente comprobar unas soluciones q me dio la lista
sobre mysql i dar los resultados. )
Joan
----------------------------------------------------------------------------
----
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.14.6/535 - Release Date: 2006/11/15
__________ NOD32 1870 (20061117) Information __________
This message was checked by NOD32 antivirus system.
http://www.eset.com
--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Thread:
Joan Teixido
Mauricio Rodriguez
Joan Teixido
Gerardo Aquino
Joan Teixido
Gerardo Aquino
|