Her web geliştirici şifreleme hakkında ne bilmeliyim?

10 Cevap php

Ben sadece bir PHP5 konser indi ettik. Ben süper hassas veriler içeren uygulama kısımlarını ele olmayacak, ama ben yine de güvenlik ve şifreleme yöntemleri hakkında utandıracak az şey biliyoruz. Ben sadece çok temel (vb, kullanıcılar yazılan verileri kullanarak kod çalıştırmasına izin vermez, düz metin şifreleri saklamak değil) biliyorum. Ne benim uygulamaları güvenli ve ben bunu nereden öğrenebilirim tutmak için bilmeniz gerekenler nelerdir?

10 Cevap

Sağlamalarının ve şifreleme arasındaki farkı öğrenin. Kripto genellikle bir dize iki yönlü yorumudur. Şifremi şifrelemek, ve sonra tekrar şifresiz bunu çözebilir. Sağlamalarının arkasında fikri bir tek yolu haline vardır 'şifreleme.'

Benim sitelerde ben hash şifreleri saklamak. Üzerinde her zaman bir kullanıcı işaretleri, ben yeniden karma onların sağladığı şifre, veritabanında saklanan karma karşı test ve maç eğer onaylamak. Bunlar unutmanız durumunda (genellikle) o (genellikle) imkansız orijinal dize ne olduğunu öğrenmek için yapar, aynı karma, çevirebilir beni farklı dizeleri know.Two için hiçbir yolu yoktur çünkü ben onlara şifreyi gönderemezsiniz.

Bu sağlam bir anlayış almak ve sağlamalarının vs şifreleme kullanmak için zaman ayırt etmek iyi olan bir konudur.

Kendi şifreleme işlevselliği yazmak için değil biliyorum. Varolan, güvenilir kütüphane mümkün gitmek için en iyi yoldur. Birçok başarılı programcı-saat ve arkalarında kullanıcı saat eksikliği teknolojileri kanama, serin kaçının. Iyice kendiniz test ettik kadar seçtiğiniz işlevselliği, ilk kişiye güven bilmiyorum. Gecede seçtiğiniz özelliğe eski alan olabilecek yeni gelişmeleri yakından tutun. Eğer masada anahtarları (örneğin bırakırsanız hiçbir şey korumalı ettik bugün mevcut en iyi şifreleme teknolojisini kullanarak sırf, cleartext bir önbellek değil veya aynı veritabanındaki başka bir tabloda depolanan Bilin ki, özel tuşlar Açıkta kalan)

Olursa olsun size ne kırılmış olabilir.

Güvenlik konusunda bilgi Nerede: olsun Schneier'in kitabı Applied Cryptography.

The short answer

Siz de güvenli olamaz

Artırılmış güvenlik için Salted şifre karma kullanın

The longer answer (still not complete, though)

Güvenlik web üzerinde hızlı bir öğretici tarafından öğrenilmesi gereken bir şey değildir. Bu var ne açıklarını sadece derinlemesine bilgi gerektirir, ama WHY onlar var ve HOW onlar çalışır. (Özellikle açık kaynak) en büyük sorunlardan biri, bu nedenle güvenlik kavramlarını ve teorisini anlamak gerekir, yeni yöntemler her zaman ilave edilmesidir.

Read books, take classes, and test the vulnerabilities yourself on a local machine. Sonra slowly bir web uygulaması nasıl güvenceye arkasında kavramını kavramak başlayacağız.

Check Out the following to start you off

  1. Developer's Guide to Web Application Security
  2. Web Security Testing Cookbook
  3. Applied Cryptography

Eğer şifreleri saklarken, aşağıdaki noktalara dikkat ediniz

  1. Eğer bir sır saklamak zorunda değilsiniz, çünkü karma şifre genellikle daha güvenlidir. Ancak, kimlik doğrulama akışındaki diğer hash tabanlı düzeni kullanarak engeller. Örneğin, karma şifre ile HTTP Digest kimlik doğrulaması kullanamazsınız.

  2. Basit hash gökkuşağı tablo ATTAK eğilimli (http://en.wikipedia.org/wiki/Rainbow_table). Karma olmayan bir reoccuring seferlik eklemek veya HMAC için anahtar olarak seferlik kullanın. Nonce şifreleri ile saklanan gerekmektedir. Ben Hazmı prepend.

  3. Şifreleme kullanılıyorsa, emin rastgele bir başlangıç ​​Vector aynı parolası farklı kullanıcı için farklı ciphertexts şifreli olacak şekilde kullanılır olun. Aksi takdirde, desen eşleştirme saldırı yatkındır. MySQL yerleşik şifreleme komuta. Bu IV şifreler için kullanmak kadar asla enjekte etmez.

  4. Tuşları döndürülebilir böylece şifreli ile anahtar adı / sürümünü kaydedebilirsiniz. Anahtar rotasyon belli standartlara uyumu için gereklidir. Önemli bilgilerin olmadan şifreleme anahtarlarını değiştirmek veya döndürmek zorunda olduğunda şifresini çözmek mümkün değildir.

Eğer bu önerileri takip ederseniz, şifreleri herhangi bir şifreleme / hash programları ile güvenli olacak.

Open Web Application Security Project göz atın. Onlar Geçerli web uygulaması güvenlik konularında pek çok bilgi var ve onlara karşı savunmak için ne yapmak gerekir. OWASP bir Development Guide, web uygulamaları ve web hizmetleri geliştirme konularında iyi bir bilgi bir sürü sağlar araya koyuyor.

Eğer bir PHP bağlamdan bakıyorsanız, ben bu kitabı tavsiye ederim:

alt metni

Pro PHP Security on Amazon

Bu kitap hakkında gerçekten gibi şey PHP güvenlikle ilgili fonksiyonları sadece bir liste çok daha kapsar. Bunun büyük bir kısmı genel web güvenlik kavramlarını ve koruma mekanizmaları kapsar. İzinler, vb ilke azından ayrıcalık, şifreleme, karma, cross-site scripting, cross-site istek sahte, oturum kaçırma, tüm PHP güvenli kod yazma örnekleri, burada kaplıdır.

Üniversitede lisansüstü düzeyde güvenlik dersleri almış olması, ben bu kitapta kapsamı ile etkilendim. Ben herhangi bir profesyonel PHP geliştiricisi için okunması gerekli düşünecektim.

Öncelikle bu php yöntemleri aşina almak zorunda:

Here PHP tüm kriptografi uzantıları var.