Veritabanında saklanması PHP başlı başına kötü bir tasarım koku; Bu durumda size güvensiz kod içerebilir asla oldukça emin olsa bile, bunu yapmak zorunda gibi varsayımların veya savunmaların sayısını en aza indirmek için her zaman iyidir. Eğer veritabanında PHP kodu saklamak, sonra bir saldırganın kazançlar veritabanına erişimi olan bir saldırı hızlı bir saldırganın rasgele kod çalıştırabilir hangi bir saldırı dönüşüyor, çok daha ciddi bir hale gelir! Ben veritabanı böyle tehlikeye sahip son derece olası olduğunu biliyorum, ama yine de bu bile bir olası durum, ihtiyacı daha da sistemi daha tehlikeye girmemesine iyi bir güvenlik uygulamasıdır.
Many people agree ki eval () her zaman, istisnasız, PHP kodu kaçınılmalıdır. Bir alternatif her zaman vardır.
Bu durumda, ancak, ben zaten bu yüzden () riskini artırmak için gitmiyor eval kullanarak, DB PHP kodu depolamak için eval () kullanarak, sizin için en iyi çözüm olacağını söylemek zorunda olacağını düşünüyorum daha fazla daha.
Ben, ancak, tavsiye ederim
- Eğer eval önce kodu doğrulamak için çalışın () bunu, sen izin ne muhafazakar kalarak. Nasılsa bir saldırganın veritabanına bile olası düşünce var olduğunu varsayın.
- En azından PHP kodu bir veritabanında saklanır değildir böylece uygulamayı yeniden bazı ciddi düşünmek. Karmaşık veri yapılarını saklamak durumunda, yerine JSON gibi bir şey ya da XML düşünüyorum. Güvenli ayrıştırıcılar bunlar için var.
Bu sorunun cevabı biraz gerici gibi görünüyor üzgünüm; Ben sadece bu tür şeylerin çok önemli olduğunu hissediyorum olur.