PHP Paylaşılan konak üzerinde DB ve aktif-veri güvenliğini

4 Cevap php

Ben SQLite'ı ve dosya sisteminde depolanan oturumları kullanarak bir PHP web uygulaması yazdı.

Bu işlevsel ince ve çekici düşük bakım. Ama, şimdi bu paylaşılan bir bilgisayar üzerinde çalıştırmak gerekiyor.

Veritabanı, kod, vb olduğu gibi aynı kullanıcı olarak çalışacak paylaşılan ana bilgisayar üzerindeki tüm web uygulamaları, bu yüzden benim kullanıcıların oturum verileri, savunmasız

Birçok bu durumda MySQL gibi DBMS oturumları saklamak öneririz. Bu yüzden ilk başta ben sadece yapacağız düşündüm ve çok MySQL içine SQLite veri taşımak. Ama sonra MySQL kimlik web uygulaması kullanıcı tarafından okunabilir olması gerekir fark, bu yüzden silbaştan değilim.

Ben iyi çözüm her web uygulaması için farklı bir kullanıcı çalışır, böylece bir CGI olarak kullanmak olduğunu düşünüyorum. Bu kulağa hoş geliyor, ama benim host mod_php'yi kullandığı bu yapmaz. Bu etkinleştirme için admin noktası görünümünde herhangi bir dezavantajı var mı? (Performans, geriye dönük uyumluluk, vb)? Eğer değilse o zaman ben bu etkinleştirmek için isteyeceğiz.

Aksi takdirde, ben bu durumda benim veritabanı ve oturum verilerini korumak için yapabileceği bir şey var mı?

4 Cevap

Sürece kodu paylaşılan web kullanıcı olarak çalıştığı gibi, sunucuda depolanan bir şey savunmasız olacak. Herhangi bir diğer kullanıcı veri ve PHP kodu da dahil olmak üzere, sunucu üzerinde herhangi bir okunabilir dosyasını incelemek üzere bir PHP komut dosyası yazabilirsiniz.

Sağlayıcı barındırma izin verirseniz, farklı bir kullanıcıya bir CGI olarak PHP gibi çalışan yardımcı olacaktır, ancak her istek oluşturulacak yeni bir süreç gerektirir gibi, bir önemli performans isabet olacaktır bekliyoruz. (Daha iyi bir performans alternatif olarak fcgi bakmak olabilir.)

Diğer bir yaklaşım kullanıcı sağlayan bir şey dayalı bir cookie ve oturum verileri şifrelemek için kullanmak olacaktır. Örneğin, kullanıcı oturum açtığında, bir kendi kullanıcı adı karmasını, şifre (sadece onlar tarafından sağlanan gibi) ve şimdiki zaman karma ile oturum verileri şifrelemek, karma içeren bir cookie. Sonraki isteği üzerine, size daha sonra oturum Verilerin şifresini çözmek için kullanabileceğiniz geri çerez alırsınız. Bu sadece mevcut oturum verileri koruyacak Ancak unutmayın; Kullanıcı tablo, diğer veri ve kod hala savunmasız olacaktır.

Bu durumda, barındırma paylaşılan düşük maliyet takas sağladığı azaltılmış güvenliğini dikkate alındığında kabul edilebilir olup olmadığına karar vermeniz gerekir. Bu uygulamaya bağlı olacaktır ve bu oldukça güvenlik eklemek için karmaşık (ve hatta muhtemelen çok etkili değil) yolu ile gelip çalışırken daha olabilir, sadece risk kabul daha iyiyiz.

Ben hep ya hiç gibi güvenlik görüntülemek yok. Atabileceğiniz adımlar vardır. Web db kullanıcıya ihtiyacı sadece izinleri verin. Hash şifreleri saklamak. Kullanıcıların SSL üzerinden kendi kimlik bilgilerini sağlamak böylece OpenID giriş kullanın.

Cgi PHP yavaş olabilir ve bazı bilgisayarlar sadece birden fazla ortamını desteklemek istemiyor olabilir.

Nedense ev sahibi sopa ile gerekebilir, ancak genellikle insanlar işlevsellik ve güvenliğin yanı sıra maliyetini karşılaştırmak için iyi bir hatırlatma olduğunu mevcut pek çok vardır. Bana makul maliyet ne de - diğer kullanıcılardan kodunuzu izole açısından neredeyse adanmış sunucu düzey güvenlik - Ben sanal makine hosting sunmaya başlayan birçok şirket fark etmiş.

Bir paylaşılan bir bilgisayar sizinle sunucuyu paylaşmak sitelerden veri gizliliği ve güvenliği konusunda bilinçli bir web sitesi çalıştırmak için bir yol yoktur. Web uygulaması için erişilebilir bir şey başkaları için adil oyundur; (onlar sizin için bunu yapmak için teşvik var varsayarak) erişebilirsiniz önce sadece bir zaman meselesi olacak.

"Eğer web kök altındaki bir dosyada DB bağlantı değişkenlerini yerleştirebilirsiniz., Bu en azından web erişimi koruyacaktır. Siz de dosya tabanlı oturumlar kullanmak için gidiyoruz eğer, sizin kullanıcı dizininde oturum yolunu ayarlayabilir ve Yine web kök dışında. "

Bunu DOWNVote olamaz yani ben bir hesabı yok .. ama ciddiye soruya bile ilgili değildir.

Yaa sen webroot dışında şeyler saklamak. Yani herhangi bir hosting senaryo için gider ve hosting özgü değildir. Biz burada yabancılardan korumak bahsetmiyoruz. Biz aynı makinede diğer uygulamalardan korumak bahsediyoruz.

OP Ben zaten kendinizi önerildiği gibi, CGI gibi PHP en güvenli çözüm olduğunu düşünüyorum. Ama başka birisi ile bu gibi bir performans isabet olduğunu söyledi.

Sana bakmak bir şeydir MySQL için oturumları ve db hareketli ve safe_mode ve / veya open_basedir'inizi kullanıyor.