PHP - Güvenlik

6 Cevap php

Dış saldırılardan PHP kullanılarak geliştirilen bir intranet web sitesi güvenliğini sağlamak için en iyi yolu nedir?

6 Cevap

Bu şaşırtıcı düşündürücü bir soru, ve ben daha iyi cevap almadık şaşırdım.

Summary

Harici bir bakan uygulama için yapmak, ve sonra bazı her şeyi.

Thought Process

Seni doğru anlama ediyorum, o zaman very az geliştiriciler kendilerine soruyor bir soru soruyor. Çoğu şirket derinlemesine kötü savunma var, ve bir saldırganın içinde bir kez, o bir seviye yukarı çekmek istiyorum Açıkçası içeri bulunuyor.

So, what kind of attack are we thinking about?
If I'm the attacker and I'm attacking your intranet application, then I must have got access to your network somehow. This may not be as difficult as it sounds - I might try spearphishing (targetting email to individuals in your organisation, containing either malware attachements or links to sites which install malware) to get a trojan installed on an internal machine.

Ben bu yapılır (ve bir iç PC kontrolü var) sonra, ben herhangi bir internet uygulamasına karşı denemek isteyen tüm aynı saldırıları çalışacağım.

However, that's not the end of the story. I've got more options: if I've got one of your user's PCs, then I might well be able to use a keylogger to gather usernames and passwords, as well as watching all your email for names and phone numbers.
Armed with these, I may be able to log into your application directly. I may even learn an admin username/password. Even if I don't, a list of names and phone numbers along with a feel for company lingo gives me a decent shot at socially engineering my way into wider access within your company.

Recommendations

  • Birincisi ve en önemlisi, tüm teknik çözümleri öncesi: TRAIN YOUR USERS IN SECURITY

Bir web uygulaması güvenliği için ortak cevaplar:

  • Use multi-factor authentication
    • örneğin kullanıcı adı / parola ve pseudo-random sayı gadget çeşit.
  • Sanitise all your input.
    • cross-site scripting ve SQL enjeksiyonu karşı korumak için.
  • Use SSL (otherwise known as HTTPS).
    • Bu (EDIT: Aslında bu İlerlemekte) kurmak için bir ağrı olduğunu, ama çok daha iyi güvenlik için yapar.
  • Adhere to the principals of "Segregation of Duties" and "Least Priviledge"
    • Diğer bir deyişle, tüm kullanıcılar onlar zarar için mutlak minimum yeteneğine sahip emin olun onlar işlerini (ve hiç kimse başkasının işleri) yapmanız gereken sadece izinleri sağlayarak.

Bir iç ağ üzerinde ise, neden dışarıdan app almak bile mümkün? Güvenlik duvarı kuralları en azından bir yerde olmalıdır.

En iyi yolu? Doğrudan dış erişimi devre dışı!

Çalışanlar need (bir extranet tarzı site gibi) kullanmak için ise, VPN sayesinde VPN onları içeri yapmak gerektiğini size çok daha fazla kimlik doğrulama seçenekleri var ve bunlardan en bırakarak daha büyük bir anlaşma daha güvenli internetten erişilebilir intranet sunucu.

Başka bir seçenek, ve bu sadece veri kamu güvenli olup olmadığını, dışarıdan erişilebilir başka bir sunucuya push veri için intranet sunucusu zamanlama olduğunu çalışır. Eğer gerçekten bu sunucu ağınıza erişmesini istemiyorum çünkü ben itme söylüyorlar. Ağ sunucusu çalışma yapalım.

Sabitlemek için en iyi yolu? Bir ağa bağlamayın. Kullanıcıların fiziksel Mozaik çalışan tek bir konsol ile korunan bir odaya girmek olun.

Oh, bunu kullanmak kolay mı olmak istiyorsun?

  1. Her zaman güvenilir bir kaynaktan gelen her tek giriş doğrulamak.
  2. Herhangi bir veri kaynaklarını güvenmiyorum.
  3. Parolaları saklarken, ALWAYS şifrenin şifrelenmiş karma saklayın.
  4. Parolaları saklarken, NEVER deposu şifreleri doğrudan.
  5. Gerçekten ihtiyacınız olmayan herhangi bir veri toplamak veya saklamak asla.
  6. Kendinizi ek çan & ekleyerek içine cazip olması asla izin vermeyin ıslık.
  7. Bruce Schneier güvenlik ve şifreleme üzerine yazılmış her şeyi okudum.

Eğer bu basit kurallara unutursanız, sadece Yahoo mail gibi, her yerde gazetelerin ön sayfalarında oynadığı uygulama bulabiliriz.

Ben Oli @ echo ve mümkünse VPN yöntemi tercih ediyorum. Eğer herhangi bir sebeple bundan daha keyfi erişim gerekiyorsa Ancak, herhangi bir kimlik doğrulama güvenliğini sağlamak için SSL kullanmalısınız. Ve parola kimlik doğrulama / IP adres doğrulaması için ek olarak istemci tarafında sertifikaları ile SSL kullanılarak bakarak değer olacaktır.

Sadece php app kendisinden dahili IP erişime izin verebilir. Ayrıca olağan güvenlik ve en iyi uygulamaları görmezden yok. Giriş doğrulama ve (yalnızca beyaz liste) çıkış kodlama, kullanıcı vb karma şifreleri ile hesapları