güvenli başka bir siteden veri göndermek?

5 Cevap php

Ben başka bir web sitesine, bir web sitesinden bazı veri göndermek için gidiyorum. Ben veri gönderen web sitesinden gönderilen ve diğer bazı kötü niyetli bir kullanıcı tarafından gönderilen değildi emin olmak için alıcı web sitesi için bir yol gerekir. Ben PHP4 kullanıyorum.

Bunu nasıl yapabilirim?

Teşekkürler!

5 Cevap

For a PHP-only solution:

Eğer (iki ucunda) bir sır tutabilir, o zaman kendi kendine uygulanan varyantı Keyed-Hash Message Authentication Code (HMAC or KHMAC). (Evet, bir varyant) kullanabilirsiniz

Kavramı her iki ucunda aynı gizli varsa, (mesaj + gizli) gönderen ucunda karma ve karma (mesaj + gizli) recieving ucunda olabilir. Sağlamalarının eşleşirse, o zaman geçerli bir mesajı var.

Gizli anahtarı (cinas amaçlanan) olduğunu. Sır olmadan, bir saldırganın mesajı değiştirmek VE alıcı ucunda doğrular yeni bir karmasını oluşturmak olabilir olanaksız çünkü.

Here is some example PHP code:

// On the sending end:
define('SECRET', '12734981273912379128739128739127938794729327492');
$message = 'your-message';
$packet = $message . sha1($message . SECRET);

// On the receiving end:
define('SECRET', '12734981273912379128739128739127938794729327492');
$message = substr($packet, 0, -40);
if(sha1($message . SECRET) != substr($packet, -40))
    throw new Exception("Message Authentication failed!")
else
    do_something_with($message);

Eğer aynı mesaj yeniden ilanıyla hacker ek güvenlik istedim, her istek için rastgele bir istek tanımlayıcı ekleyin ve aynı hash kabul ASLA sağlamak olabilir.

DISCLAIMER: this as with all security sensitive code should be peer reviewed and verified before being trusted with sensitive data. Do through research on the topic, or better yet, use an existing library that handles this type of verification+authentication.

Sadece iki yönlü ssl kullanın. Istemci SSL sertifikası sadece etrafında başka bir yol ile sunucuda kendini doğrular.

Yani sunucu o veri formu alır doğru müşteri bilir.

Müvekkilinin doğru sunucuya veri gönderir bilir

jitter çözümü (çift yönlü SSL) çalışır. Ancak, muhtemelen basit bir yolu tek yönlü SSL (sunucu alma kimlik doğrulaması) ve Temel Yetkilendirme kullanmaktır. SSL gizliliği sağlar ve Temel Denetim istemci doğrular.

http://devzone.zend.com/article/1265: Ben GnuPGP kullanarak içine bakmak istiyorum

Benim oy SSL için, ama bir alternatif olduğu gibi.

Her iki site, daha sonra bir gizli anahtar (SK) biliyorsanız

  1. website1 (WS1) (WS2) website2 gönderebilirsiniz nonce (N1)
  2. WS2 can send WS1 a message that contains:
    • veri (gizli anahtarı kullanarak şifreli olabilir)
    • md5 (SK. N1) (WS2 SK biliyor yani kanıtı)
    • veri üçüncü bir taraf tarafından manipüle olmadığını md5 (SK. veri) (yani kanıt