PHP ve MySQL
“Bir web sitesinin güvenliğini sağlama” makalesi Sophos Plc ve SophosLabs tarafından sunulmaktadır.
Aralık 2007.
PHP, en yaygın sunucu tarafı betik dillerinden biridir. Çok geniş bir işlevsel kod veritabanına, basit söz dizimine, uyarlanabilir koda sahiptir ve en önemlisi, çeşitli veritabanları ile uyumludur. MySQL, PHP ile birlikte kullanılan en popüler DBMS’lerden biridir. Bunun nedeni, etkili olması, sağlam işlevselliğe sahip olması ve yapılandırmasının ve kullanımının kolay olmasıdır.
PHP dili, zamanla birçok potansiyel güvenlik açığı ortaya çıkardığı için genellikle güvenlik eksikliği nedeniyle eleştirilir. Ancak, istikrarlı bir şekilde gelişiyor. Çoğu güvenlik açığı, uygun yapılandırma ve kod güvenliğinin artırılmasıyla telafi edilebilir.
İşte "php.ini" dosyasındaki değişkenlerle ilgili birkaç yapılandırma ipucu (güvenli kod yazımı aşağıda tartışılmaktadır):
-
register_globals değişkenini kapalı olarak ayarlayın.
-
safe_mode değişkenini açık olarak ayarlayın.
-
Open_basedir değişkeninde sitenin temel dizinini belirtin.
-
display_errors değişkenini kapalı olarak ayarlayın.
-
log_errors değişkenini açık olarak ayarlayın.
-
allow_url_fopen değişkenini kapalı olarak ayarlayın.
Bu ayarlar hakkında daha fazla bilgi ve neden önemli bir rol oynadıkları için aşağıdaki kaynaklara bakın: [7, 8, 9].
MySQL’i kurduğunuzda, bir “test” veritabanı oluşturulur ve varsayılan olarak parolasız açık “kök” hesabı oluşturulur. Bu hesap, sunucudaki diğer tüm veritabanlarına tam erişim hakkı otomatik olarak verilir. Bu yüzden aşağıdakileri yapmalısınız:
-
“Kök” hesabının parolasını hemen değiştirin.
-
Yeni bir MySQL hesabı oluşturun ve ona minimum gerekli hakları verin.
-
"test" veritabanını ve ilgili kullanıcıları silin.