Get veya Post kullanarak başka bir PHP script veri geçerken, ben tuz ile bir MD5 ile şifrelemek gerekir? ya da bunu yapmak için daha iyi bir yolu var mı?
Ne tür veri? MD5 bir karma işlevi var, bir şifreleme işlevi değil - bunu MD5 kez hayır "unencrypt," geri orijinal veriler alınamıyor var.
Eğer kritik verileri (örneğin kredi kartı, banka hesabı veya sosyal güvenlik numaraları) iletilmesi iseniz güvenli bir SSL bağlantısı (yani HTTPS) kullanmalısınız.
Bu başarmak için çalışıyoruz ne bağlıdır.
Yalnızca veri app geliyor doğrulamak istiyorsanız Genellikle, veri tahrif olmamıştır doğrulayan bir karma ile birlikte veri aktarmak.
Eğer tam anlamıyla istek verileri şifrelemek için arıyorsanız, size şifreleme içine bakmak ve karma olmamalıdır.
$a = 2;
$b = 3;
$hash = sha1($salt.$a.$b)
$link = "http://www.domain.tld/?index.php?a=$a&b=$b&hash=$hash";
Daha sonra:
$a = $_GET['a'];
$b = $_GET['b'];
$hash = sha1($salt.$a.$b);
if ($_GET['hash'] == $hash) {
//data ok
} else {
// data has been tampered with
}
(Örneğin, şifre, kullanıcı adı ya da e-posta gibi) mantıklı veri gönderiyor iseniz bazı "güçlü" bir şekilde şifrelenmiş bu veri göndermek gerekir. Örneğin sade ama HTTPS üzerinden gönderilebilir.
HTTPS her zaman GnuPG gibi bazı ücretsiz / açık çözümleri ile verileri şifrelemek bir seçenek değilse.
Bu arada, MD5 "tek yönlü" (but it can be cracked) yani bunu yapamazsınız un-MD5 kolay.
Bu soru için temel motivasyon PHP diğer web-geliştirme dilleri daha az güvenli olduğu yanlış kanı olduğunu izlenimini almak. ASP / NET gibi diğer platformlar şeyleri çok gizli tutmak için yöntemler önceden yapılmış olabilir, fakat kullanıldıkları takdirde bu yöntemler sadece çalışır. Aynı PHP için de geçerli. (Bir varsayım olduğunu, ve ben senin için yanlış olabilir iken, popüler bir varsayım) PHP'nin güvenliği için bir endişe olarak soru alarak, ben cevap istiyorum: PHP ile veri aktarımı güvenli en iyi yolu aynı uygulamaları kullanmak için ve bu SSL, güçlü parolalar, IP adreslerini doğrulayan, mat (yani, rol tabanlı tanımlama) altında anahtarları bırakarak değil, ve her şey gibi tüm diğer platformlar için kullanılan teknikler, bu soru için önerdi.
Tabii ki güvenli olmak istiyorum ve PHP kullanmak istiyorum, bu yüzden senin boğazını aşağı atlama değilim, o söyledikten sonra. Eğer verileri şifrelemek için nasıl sadece biliyorum, ama başka şeyler ton için de dikkat böylece Ama ben çok bazı temel web güvenlik teknikleri üzerinde eğitim öneriyoruz.
Bir HTTPS bağlantısını kullanmak istemiyorum ve hassas verileri geçen değilseniz, ben verileri şifreleyerek ve muhtemelen sürecinde bir message authentication code kullanarak öneriyoruz.
Sen Mcrypt manual bakmak isteyebilirsiniz.
Özellikle / POST GET veri ile ilgili değil, ben PHP uygulama veri güvenliğini nasıl anlatılır PHP encryption for the common man başlıklı bir makale bulunamadı.