WP-config veb-ildizidan tashqarida harakat qilyaptimi, albatta foydalidir?

Bugungi kunda eng keng tarqalgan xavfsizlik amaliyotlaridan biri wp-config.php vhost ning hujjat ildizidan yuqori kataloglardan biri . Men buning uchun yaxshi izohni topmadim, lekin men veb-portal ichidagi zararli yoki infektsiyalangan skriptlarning ma'lumotlar bazasi parolini o'qish xavfini kamaytirishni nazarda tutmoqdaman.

Lekin, siz hali ham WordPressga ruxsat berishingiz kerak, shuning uchun hujjat ildizining ustidagi katalogni kiritish uchun open_basedir ni kengaytirishingiz kerak. Bu faqat butun maqsadni engish emas, balki serverlar jurnallarini, zaxiralarni va boshqalarni hujumchilarga ochishi mumkinmi?

Yoki faqatgina wp-config.php ning kodi http://example.com/wp-config.php , PHP dvigatel tomonidan tahlil qilinmaydi. Bu juda noyob bir voqea kabi ko'rinadi va HTTP so'rovlariga jurnallar/zaxira nusxalarini/va hokazolarni ochishning kamaytirilishiga olib kelmaydi.

Ehtimol, boshqa fayllarni ko'rsatmasdan, ba'zi bir hosting sozlamalarini hujjat ildizidan tashqariga ko'chirish mumkin, lekin boshqa sozlamalarda emasmi?


Conclusion: After a lot of back-and-forth on this issue, two answers have emerged that I think should be considered the authoritative ones. Aaron Adams makes a good case in favor of moving wp-config, and chrisguitarguy makes a good case against it. Those are the two answers you should read if you're new to the thread and don't want to read the entire thing. The other answers are either redundant or inaccurate.

125
Sizning savolingiz ichida javoblarni tanlab, boshqa barcha javoblarni rad etish shart emas. Pastda ko'rib turganingizdek, stackexchange tizimining ovoz berish tizimi odamlarga ma'no beradigan javoblarni ovozga qo'yishi kerak, ammo savolga berilganlar "qabul qilingan javob" mexanizmidan foydalanishi kerak va o'z yuqoriga/past ovozlar bilan foydalanishi kerak.
qo'shib qo'ydi muallif The Chairman, manba
Men buni men so'ragan savollarning 99 foizi uchun qilmayapman, lekin bu aniq ishda bu o'rinli deb o'ylardim. Savolga 8 ta javob mavjud, ularning ba'zilari ancha uzun/murakkab va ba'zilari noto'g'ri ma'lumotlar mavjud bo'lishiga qaramasdan yoki suhbatga qo'shilmasligiga qaramay, juda ko'p yangiliklarga ega. Yarim nufuzli xulosani taklif qilish odamlarga ipni birinchi marta o'qishga yordam beradi deb o'ylayman. Har doimgidek, o'quvchilar o'z fikrlarini shakllantirish uchun erkindir; Men o'shanday fikrni faqat O'O sifatida taklif qilyapman.
qo'shib qo'ydi muallif Miles D, manba
@Kzqay: "stackexchange ovoz berish tizimi" demokratik jarayondir va ishtirokchilar tez-tez quyidagilarga ega: 1) OXni aslida nima so'rasa, hal qilmoqchi ekanligi aniq emas va 2) har qanday javobning haqiqiyligini aniqlay olmaydi. E'tibor berganlar va ovozlar berilganidan so'ng, OO yordam bergan javoblarni oshkor qilish uchun ko'proq foydali emas. . Axir o'shanda OP faqatgina biladi, va men ko'pgina OPlarga shunday yo'l tutishni xohlayman. Ha, odamlar "odamlarga mantiqiy javoblarni ovozga qo'yadilar", lekin o'shanda OXga mantiqiy bo'lgan so'nggi so'zni aytaylik.
qo'shib qo'ydi muallif Daniel, manba

8 javoblar

Qisqa javob: ha

Bu savolning javobi aniq bir ha va boshqacha aytganda to'liq mas'uliyatsiz deganidir.


Uzoq javob: haqiqiy dunyo namunasi

asosan tarkibidan mahrum bo'lishiga yo'l qo'ymaslik uchun wp-config.php ko'chiradigan haqiqiy serverimdan juda aniq namuna ko'rsatishga ruxsat bering.

Xato:

Pleskdagi (11.0.9 MU # 27 bilan belgilangan) bugdagi ushbu tavsifni ko'rib chiqing:

Plesk, hosting rejasi bilan obunani sinxronlashtirishdan keyin subdomain yo'nalishini o'zgartiradi (117199)

Zararsiz, shunday emasmi?

Xo'sh, bu xatoni ishga solmoq uchun nima qildim?

  1. Boshqa saytga (masalan site.staging.server.com site-staging.ssl.server.com ) yo'naltirish uchun subdomainni sozlang.
  2. Obunaning xizmat rejasini (masalan, PHP konfiguratsiyasi) o'zgartirdi.

Buni qilganimda, Plesk subdomainni standartlarga qaytaradi: hech qanday tarjimonlar (masalan, PHP) faol bo'lmagan holda ~/httpdocs/ tarkibiga xizmat ko'rsatiladi.

Va men buni sezmadim. Bir necha hafta davomida.

Natija:

  • veb-rootdagi wp-config.php bilan /wp-config.php so'rovi WordPress konfiguratsiya faylini yuklab olindi.
  • veb-rootdan tashqari wp-config.php bilan /wp-config.php so'rovi butunlay xavfsiz bo'lmagan faylni yuklab oldi. Real wp-config.php fayli yuklab bo'lmadi.

Shunday qilib, veb-ildizdan tashqarida harakat qilayotgan wp-config.php haqiqiy dunyoda ishonchli xavfsizlik imtiyozlari mavjud .


Serverda istalgan joyga wp-config.php ni qanday ko'chirish kerak

WordPress sizning WordPress o'rnatmaning yuqorida joylashgan katalogni avtomatik ravishda wp-config.php faylingiz uchun qidiradi, shuning uchun uni ko'chirib olgan joyingiz tugadi!

Ammo boshqa joyga ko'chirsangiz nima bo'ladi? Oson. WordPress katalogida quyidagi kod bilan yangi wp-config.php yarating:

<?php

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Location of your WordPress configuration. */
require_once(ABSPATH . '../phpdocs/wp-config.php');

(Yuqoridagi yo'lni ko'chirilgan wp-config.php faylining haqiqiy yo'lini o'zgartirganingizga ishonch hosil qiling.)

Agar open_basedir bilan muammo chiqarsangiz, PHP konfiguratsiyasidagi open_basedir direktivasiga yangi yo'lni qo'shing:

open_basedir = "/var/www/vhosts/example.com/httpdocs/;/var/www/vhosts/example.com/phpdocs/;/tmp/"

Bo'ldi shu!


Aksincha, argumentlarni ajratish

Har qanday dalillar, wp-config.php -ga ko'chirilishiga qarshi.

Argumentlar 1: Agar PHP o'chirib qo'yilgan bo'lsa, ular allaqachon mavjud

Biror kimsa bu tarkibni ko'rishi kerak   [ wp-config.php ] sizning serverlaringizdan PHP tarjimonlarini chetlab o'tish bo'lsa ...   Agar shunday bo'ladigan bo'lsa, siz allaqachon qiyinchiliklarga duch kelyapsiz   serveringiz.

FALSE: The scenario I describe above is the result of a misconfiguration, not an intrusion.

O'zgarish 2: PHP tasodifiy ravishda o'chirib qo'yish juda kam va shuning uchun ahamiyatsiz

Tajovuzkor PHP operatorini o'zgartirish uchun yetarli huquqqa ega bo'lsa   allaqachon vidolashgan. Tasodifiy o'zgarishlar tasodifiy jihatdan juda kam uchraydi,   va bu holda parolni o'zgartirish oson bo'ladi.

FALSE: The scenario I describe above is the result of a bug in a common piece of server software, affecting a common server configuration. This is hardly "rare" (and besides, security means worrying about the rare scenario).

WTF: Changing the password after an intrusion hardly helps if sensitive information was picked up during the intrusion. Really, do we still think WordPress is only used for casual blogging, and that attackers are only interested in defacement? Let's worry about protecting our server, not just restoring it after somebody gets in.

Argumentlar 3: wp-config.php ga kirishdan bosh tortish etarli

Virtual xotira konfiguratsiyasi yoki fayl orqali kirishni cheklashingiz mumkin    .htaccess - faylga tashqi kirishni samarali tarzda cheklash   hujjat ildizidan tashqarida harakat qiladigan usul.

FALSE: Imagine your server defaults for a virtual host are: no PHP, no .htaccess, allow from all (hardly unusual in a production environment). If your configuration is somehow reset during a routine operation – like, say, a panel update – everything will revert to its default state, and you're exposed.

Sozlamalar tasodifan standartlarga qaytarilganda xavfsizlik modeli muvaffaqiyatsiz bo'lsa, siz ko'proq xavfsizlikni ta'minlashingiz kerak.

WTF: Why would anybody specifically recommend fewer layers of security? Expensive cars don't just have locks; they also have alarms, immobilizers, and GPS trackers. If something's worth protecting, do it right.

O'zgarishlar 4: wp-config.php ga ruxsatsiz kirish juda katta ahamiyatga ega emas

Ma'lumotlar bazasi ma`lumotlari, albatta, faqat nozik narsalardir   [ wp-config.php ].

FALSE: The authentication keys and salts can be used in any number of potential hijacking attacks.

WTF: Even if database credentials were the only thing in wp-config.php, you should be terrified of an attacker getting their hands on them.

Argumentlar 5: veb-ildizdan tashqarida wp-config.php ko'chirish, aslida kam serverni xavfsiz holga keltiradi.

Siz hali ham WordPressga ruxsat berishingiz kerak [ wp-config.php ], shuning uchun sizga kerak   hujjatning ustidagi katalogni kiritish uchun open_basedir ni ochish   ildiz.

FALSE: Assuming wp-config.php is in httpdocs/, just move it to ../phpdocs/, and set open_basedir to include only httpdocs/ and phpdocs/. For instance:

open_basedir = "/var/www/vhosts/example.com/httpdocs/;/var/www/vhosts/example.com/phpdocs/;/tmp/"

Agar sizda bo'lsa, har doim /tmp/ yoki foydalanuvchi tmp/ katalogini kiritishni unutmang.)


Xulosa: konfiguratsiya fayllari doimo har doim har doim bo'lishi kerak

Agar siz xavfsizlik haqida g'amxo'rlik qilsangiz, siz veb-rootdan tashqari wp-config.php ni ko'chirasiz.

114
qo'shib qo'ydi
@CharlestonSoftwareAssociates Yaxshi tayyorlanganingizni eshitganimdan xursandman! Bunday muammolardan o'zimni himoya qilish uchun, men fayllarni standart kataloglarida o'tirishga ruxsat bermayman; faqat ~/httpdocs/ da paydo bo'lgan juda ko'p veb-fayllar endi ~/sites/example.com/www/ manzilida joylashgan. Keyingi marta biror narsa asl qadriyatlarga qayta tiklanadi, domenlar PHP fayllarimga xizmat ko'rsatishdan ko'ra, 500 ta xatolarni tashlaydi.
qo'shib qo'ydi muallif Torkel, manba
@IanDunn Men sizni butunlay qabul qilaman, albatta, katalogni ko'chirishni tavsiya qiladigan ko'pchilik odamlar

wp-config.php katalogini aslida server xavfsizligini tushunmaydi. Foydalanuvchilar fishing saytlariga yo'naltirish uchun osongina ishlatilishi mumkin bo'lgan faylni .htaccess ustida chmod 777 ni tezroq tavsiya qiladigan odamlardir. Chin dildan, bu WordPress jamiyati davlatining vakili bo'lib ko'rinadi; u erda ajoyib miqdori yomon kod mavjud va jamiyatning kattaligi tufayli u ko'payadi. Biz qila oladigan har bir narsa, odamlarni xatarlar haqida yaxshiroq o'rgatish uchun harakat qilishdir.

qo'shib qo'ydi muallif Torkel, manba
@IanDunn Aslida, wp-config.php ni o'zboshimchalik joyiga ko'chirish oson. Javobimga yo'l ko'rsatdim; WordPress katalogidagi real kodning manzilini eslatuvchi qo'g'irchoqli wp-config.php yaratishni o'z ichiga oladi.
qo'shib qo'ydi muallif Torkel, manba
@MarkKaplun "Stack Exchange" ni o'qimagan odamlar shubhalanishi mumkin "- xavfsizlik amaliyotiga qarshi Stak Exchange da tavsiya etilgan juda yomon dalillar. Ko'pchilik veb-root ichida nozik konfiguratsiya fayllarini qoldirishning haqiqiy xavf-xatarlarini tushunganida, ko'proq odamlar ushbu fayllarni veb-ildizdan tashqariga ko'chiradilar va foydalanuvchiga wp-config.php . Agar qulaylik xavfsizlikdan ko'ra muhimroq deb hisoblasangiz, bu sizning fikringizdir; foydalanuvchilarga xavfsizlik nuqtai nazaridan qulaylik yaratishni tavsiya qilmoqdasiz.
qo'shib qo'ydi muallif Torkel, manba
Siz "har qanday holatda dahshatli" emassiz. Bu juda ehtimoliy va hatto showable , bu veb-rootning asl holatini tiklashiga olib kelishi mumkin, bu holda siz "tost" emas, kodi> wp-config.php himoyalangan bo'lib qoladi. Bu juda ishonarli - juda ko'p darajada mumkin emas - bu xato veb-ildizning o'zingizning wp-config-ni joylashtirgan aniq katalogga o'zboshimchalik bilan tiklashiga olib kelishi mumkin. PHP .
qo'shib qo'ydi muallif Torkel, manba
Hey Aaron, mulohazali va batafsil javob uchun rahmat. To'g'risi, hujumga etmaslikdan keyin pwni almashtirish to'g'ri. Shunga qaramay, sizning Plesk anekdotingiz sizni ishontirmaydi. Bu, albatta, muammo, lekin wp-configning harakatlanishi bu muammoning echimi deb o'ylamayman. Vhost konfiguratsiyasi asl holatini tiklash uchun, va hokazo. Agar sizning ilovangiz xavfsizlikning bunday turlaridan xavotirlanadigan darajada xavfsizlikka muhtoj bo'lsa, unda siz ularni to'g'ridan-to'g'ri murojaat qilishingiz kerak. Masalan,. Plesk dan foydalanmang, chunki u doimo zaif bo'ladi; vhost konfiguratsiyasi sukut bo'yicha ishonchli ekanligiga ishonch hosil qiling ...
qo'shib qo'ydi muallif Miles D, manba
... konfiguratsiya boshqaruvini tizimning barcha aspektlarini hujjatlashtirish va avtomatik tarzda bajarish va hokazo. dan foydalaning. Wp-configni harakatga solish, kambag'al odamning ko'proq professional texnikaga muqobilidir va bu yaxshi, lekin men buni o'ylamayman to'g'ri echim sifatida taqdim etilishi kerak. Httpdocs /../ phpdocs, APAIK, WordPress-ni ko'chirishga javoban, unga ABSPATH ustidagi bitta katalogni qidirishadi, shuning uchun bu mumkin emas.
qo'shib qo'ydi muallif Miles D, manba
Bu yaxshi narsa, Aaron. Men bu va boshqa sharhlarda eslatgan sabablarimga biroz shubha qilmayapman, lekin siz menga dastlab o'ylab topganimdan ko'ra ko'proq qadrli ekanligiga ishonch hosil qildingiz. Hech bo'lmasa, to'g'ri ish qilsa, men hech narsa qilolmaydi, deb o'ylamayman. Shunga qaramay, men uni targ'ib qiladigan odamlarning ko'pchiligi uning sabablarini tushunmayapman va ular uni o'rgatadigan usul ko'pincha httpdocsning yuqorida joylashgan katalogga olib kelishi mumkin, ammo siz bu muammolarni hal qilishda yordam berdingiz. Sizning Javobingiz.
qo'shib qo'ydi muallif Miles D, manba
@AaronAdams - bu yaxshi fikr, lekin mening ishimda yordam bermadi. Ular konfiguratsiyadan foydalanishni normal bo'lmagan doc rootimga ishora qilish uchun qayta tikladi, lekin buning uchun yetarli emas. Albatta, eng yomon senariy. Haqiqatdan ham saytning ba'zilari uni tuzatish uchun ikkinchi urinishdan keyin ishlagan, ammo bu hali ham to'g'ri emas edi. Haqiqatdan ham dahshatli vaziyat men hosting kompaniyamdan noto'g'ri boshqariladigan server ta'mirlanishiga nisbatan xushmuomalalik. Hatto "million marta bir marta" voqealar uchun ham sezilarli ma'lumotlarni himoya qilish uchun qanchalik ko'p ish qilsa, shuncha yaxshi bo'ladi.
qo'shib qo'ydi muallif lumpynose, manba
Ushbu javoblar aniq-ravshandir. Mening veb hosting kompaniyasi bir haydovchi qatori xatolik bor edi. Barcha so'zlar va bajarilganidan so'ng, ular PARTIALLY tizimini qayta tikladi. Ular noto'g'ri qilgan httpd.conf fayllarini qayta tiklash uchun bir qator cPanel/WHM skriptlarini ishlatishdi. Yaxshiyamki, allaqachon doc rootdan tashqari wp-config.php bor edi, lekin agar kontentni olish uchun u erda bo'lganda edi. Ha, kamdan-kam uchraydi, ammo kamdan kam hollarda tashvish qilish kerak. Bundan tashqari, "oddiy fikrli odam yo'qoladi", deb aytdi.
qo'shib qo'ydi muallif lumpynose, manba
Agar apache, linux yoki administratorning miyangizda biror xato bo'lsa, siz har qanday holatda tostdasiz. Ssenariyangizda noto'g'ri konfiguratsiyani veb-saytning ildizida, keyin serverdagi istalgan boshqa joyda amalga oshirish ehtimoli ko'proq bo'lishi mumkinligini tushuntirib berolmaysiz. Noto'g'ri tuzilgan apache, /config.php// config.php faylga osonlik bilan kirish mumkin.
qo'shib qo'ydi muallif nitsua60, manba
Bunday xatolik yuz berishi mumkinmi? Men xavfsizlik mutaxassisi emasman, ammo amalda bunday hujum vektorini ishlatish haqida eshitmaganman. Men bu usulni tavsiya qilaman, chunki siz o'zingizning saytni saqlab qo'yishingiz kerak, chunki siz wp-config qaerda ekanligini bilmayapsiz va bu faylni biroz tegizadigan o'quv qo'llanmalarining ko'pini bekor qilasiz. Siz, menga va boshqa sharhlovchilarga nima bo'lganini tushunasiz, lekin kam tajribali odamlar uchun bu katta va uzoq WTF ani bo'ladi.
qo'shib qo'ydi muallif nitsua60, manba
Men yozishim mumkinmi ../../wp-config.php yoki hatto boshqa nom? Men 1-darajali doimiy konfiguratsiya bilan bitta avtomatizator tizimida harakat qildim. Men ushbu blogni subfoldda bo'lishni istadim, shuning uchun wp-config.php 2-darajali darajasini oshirishni xohladim, lekin veb-sayt ishlatilmayotganda ../../ wich sifatida ishladilar .. /. WP esa pastki papkada ishlamaydi.
qo'shib qo'ydi muallif cokeandjoke, manba

Eng katta narsa wp-config.php - ba'zi bir sezgir ma'lumotlarni o'z ichiga oladi: ma'lumotlar bazasi foydalanuvchi nomi/parol, va hokazo.

Shuning uchun fikr: uni hujjat ildizidan tashqariga ko'chiring va hech narsa haqida qayg'urmasligingiz kerak. Tajovuzkor bu faylga tashqi manbadan hech qachon kira olmaydi.

Bu erda shoshilmang: wp-config.php hech qachon ekranga hech narsa yozishga imkon bermaydi. Bu sizning WP o'rnatishda ishlatiladigan turli xil sobit belgilaydi. Shunday qilib, ushbu faylning mazmunini ko'rishingiz mumkin bo'lgan yagona usul - bu sizning serveringiz PHP tarjimonlarini chetlab o'tish bo'lsa - ular faqat matn sifatida ko'rsatish uchun .php faylini olishadi. Agar shunday bo'lsa, siz allaqachon muammoga duch kelyapsiz: ularning serveriga to'g'ridan-to'g'ri kirishingiz (va ehtimol ildiz ruxsatnomalari) va xohlagan narsani qilishlari mumkin.

Men yuqorida aytib o'tilgan sabablarga ko'ra, oldinga borish va wp-config kodini hujjat ildizidan tashqari xavfsizlik nuqtai nazaridan ko'chirishga hech qanday foyda yo'qligini aytmoqchiman:

  1. Faylga virtual kirish konfiguratsion yoki .htaccess orqali faylni kirishni cheklashingiz mumkin - faylga tashqi kirishni cheklash hujjat ildizidan tashqarida harakat qilish kabi cheklangan.
  2. Ssh orqali serveringizga kirish (cheklangan) bo'lsa ham, faylni o'qish uchun etarli privilegiyalarga ega bo'lmagan foydalanuvchilarni oldini olish uchun fayl ruxsatini wp-config -ga qat'iy ishonch hosil qilishingiz mumkin.
  3. Sensiz ma'lumotlaringiz, ma'lumotlar bazasi sozlamalari faqat bitta saytda ishlatiladi. Shunday qilib, tajovuzkor ushbu ma'lumotlarga kirishga erishgan taqdirda ham, u ta'sir qiladigan yagona sayt wp-config.php faylining tegishli bo'lgan WordPress-ga tegishli bo'ladi. Eng muhimi shundaki, ma'lumotlar bazasi foydalanuvchisining faqat WP-ning ushbu ma'lumotlar bazasiga o'qish va yozish uchun ruxsatlari bor va boshqa hech narsa - boshqa foydalanuvchilarga ruxsat berishga ruxsat yo'q. Boshqacha aytganda, tajovuzkor bazangizga kirsa, bu zaxira nusxasini tiklash (4-bandni ko'ring) va ma'lumotlar bazasi foydalanuvchisini o'zgartirishi
  4. Siz tez-tez zaxiralashingiz mumkin. Ko'pincha nisbatan bir atama: har kuni 20 ta maqola yuboradigan bo'lsangiz, har kuni yoki bir necha kun ichida zaxirangiz yaxshilanadi. Agar siz haftasiga bir marta chop qilsangiz, haftada bir marta qo'llab-quvvatlanishi etarli bo'ladi.
  5. Siz saytni versiya boshqaruvida ( bu kabi ) egasiz, ya'ni tajovuzkor kirish huquqiga ega bo'lsa ham, siz kodlardagi o'zgarishlarni osongina aniqlash va ularni orqaga qaytarish. Agar buzg'unchiga wp-config ga kirish imkoni bo'lsa, ular boshqa narsalar bilan aralashib ketgan bo'lishi mumkin.
  6. Ma'lumotlar bazasi ma`lumotlari wp-config da faqatgina sezgir narsalardir va bu haqda ehtiyotkorligingiz sababli (3 va 4-bandlarni ko'ring), bu katta ish emas. Tuzlar va shunga o'xshash narsalar har doim o'zgarishi mumkin. Bitta narsa shundaki, u foydalanuvchilarning cookie-fayllarini bekor qiladi.

Men uchun wp-config kodini hujjatning asl nusxasida xavfsizligi - bu juda ham somonli inson.

36
qo'shib qo'ydi
Menimcha, bu erda asosiy savol - uni ko'chirish uchun foydali bo'ladimi yoki yo'qmi, deb hisoblayman, lekin bu foydalar ochiq-oydin fayllarni, nusxalarni, maxsus faylni o'z ichiga olgan ota-katni o'z ichiga oladigan openbase_dir doirasini kengaytirish xavfidan ustun yoki olmasin. saqlash katalogini va hokazolarni so'rayman. Bu haqda so'rab turaman va harakatlanuvchi wp-config protokollari hech kim menga javob bermadi. Xullas, shu nuqtada men sukut saqlayman, chunki bu imtiyozlar xavfga loyiq emas.
qo'shib qo'ydi muallif Miles D, manba
AFAIK, uni ABSPATHdan yuqorida joylashgan katalogdan boshqa joyga ko'chirish mumkin emas, chunki u faqatgina WP-ni topadi.
qo'shib qo'ydi muallif Miles D, manba
Nevermind, Aaron o'z javobini vaqtinchalik echim bilan yangilab, haqiqiy() ni kiritish uchun qo'g'irchoq wp-config.php faylini ishlatgan.
qo'shib qo'ydi muallif Miles D, manba
Ha, bu mening fikrimcha. Men yagona emasligimni bilishdan juda mamnunman :) Savolni boshqa bir kun yoki ikki kun ochiq qoldirmoqchiman, shundagina kimdir mazmunli dalillar keltirishi mumkin, ammo hozirgi kunga qadar ushbu savolga to'g'ri javob kabi ko'rinadi. men bilan.
qo'shib qo'ydi muallif Miles D, manba
Kichik tuzatish: wp-config.php faylini hujjat ildizidan tashqariga ko'chirish uchun xavfsizlik foyda yo'q. Xavfsizlik bilan bog'liq bo'lmagan va faqat odatiy bo'lmagan sozlamalar uchun qo'llaniladigan boshqa imtiyozlar mavjud.
qo'shib qo'ydi muallif Otto, manba
Bu yaxshi fikrlar, lekin bularning eng katta muammosi, ular o'zlarini himoya argumentlari emas, balki qarshi dalillar. Ularning ko'pchiligi bu qanday katta kelishuv emasligi haqida gapiradi, chunki A) siz db foydalanuvchisini to'g'ri ishlagan deb hisoblaysiz va B) zaxirangiz bor. Wookommerce kabi narsalarni foydalanganda yoki ma'lumotlar bazasida nozik ma'lumotlarni saqlashda nima sodir bo'ladi? Keyin sizni burkab olasiz.
qo'shib qo'ydi muallif Mike-DHSc, manba
Yaxshi qo'ng'iroq. Tahrirlangan.
qo'shib qo'ydi muallif Matt Bailey, manba
Albatta. Agar mod_php ishlamasa yoki PHP fayllari PHP tarjimoniga o'tkazilmasa, bu mumkin. Agar FCGI tizimini ishga tushiradigan bo'lsangiz, PHP fayllari interpretatsiya uchun fcgi jarayoniga uzatilmasa, xuddi shu narsa mumkin. Har ikkisi ham, ehtimol, yuzaga kelishi mumkin bo'lmagan juda katta muammolarga ishora qilmoqda.
qo'shib qo'ydi muallif Matt Bailey, manba
Mumkin bo'lmagan afsonalarni olish uchun - bu mumkin emas, biror narsa server tomoniga to'g'ri kelishi mumkin - bu holda ekranga PHP kodi nashr etiladimi?
qo'shib qo'ydi muallif Levi Wallach, manba
@IanDunn Lekin eng yaxshi javoblar uni ierarxiyadan tashqariga ko'chiradi, bu jurnallar haqida xavotirlaringizni ko'rib chiqadi va hokazo. Bu javob sizning savolingizga javob bermaydi: "harakatlanmoqda ... juda foydali", deydi boshqa xavfsizlik choralari foydalidir va sizni xavfsizlik to'g'risida xavotirga solmaslikka undashga harakat qiladi. Har kim o'z uylarini zararsizlantirguncha xavfsiz deb o'ylaydi. Shundan so'ng ular yaxshi ish qilishadi. Ba'zi odamlar, garchi ularning xavfsizligi past bo'lsa-da, har qanday zararsizlantirilmaydi, lekin bu pastroq xavfsizlikni ta'minlash uchun yaxshi maslahat degani emas.
qo'shib qo'ydi muallif Andrei Veshtard, manba

Men Maksning bilimdon javob va deb o'ylayman, bu hikoyaning bir tomoni. WordPress kodeksida ko'proq maslahat bor :

Also, make sure that only you (and the web server) can read this file (it generally means a 400 or 440 permission).

If you use a server with .htaccess, you can put this in that file (at the very top) to deny access to anyone surfing for it:


order allow,deny
deny from all

Wp-config.php-ga 400 yoki 440 ruxsatini o'rnatish plaginlarni yozishni yoki o'zgartirishni oldini oladi. Masalan, plaginlarni keshlash (W3 Total Cache, WP Super Cache, va hokazo) uchun haqiqiy ish bo'ladi. Bunday holatda, 600 (kodlar uchun// home/user katalog).

24
qo'shib qo'ydi
Shunday qilib, HTTP so'rovlarini wp-config.php-dan rad qilish uchun foydalansangiz, u hujjatning ildizidan tashqarida harakat qilish bilan bir xil natijaga erisha olmaydi, lekin loglarni/zaxiralarni/va hokazolarni ko'rsatmasdan?
qo'shib qo'ydi muallif Miles D, manba
Agar 1-bandi shartli xavfsizlik yordamini olmagan bo'lsa. To'liq nuqta, hujjatning ildizidan tashqarida emas, balki bir darajaga ko'tarilishi kerak.
qo'shib qo'ydi muallif Miles D, manba
# 2 holatda, siz PHP ga/home/user-da hamma narsaga ruxsat berish uchun open_basedir kengaytirishni kengaytirishingiz kerak. U erda saqlangan har qanday narsa (jurnallar, zaxiralashlar, .bash_xistory, va hokazo)/home/user/public_html ichida ishlaydigan har qanday PHP skriptiga kirish mumkin bo'ladi. Wp-config sahifasini /home/user/public_html/wp-config.php manzilidan tark qilish va HTTP so'rovlarini to'sish uchun HTCcess qoidalarini qo'llash yaxshi bo'lardi. Siz hali ham oddiy matnda ko'rsatiladigan (ehtimol bo'lmagan) hodisaga kirishni bloklashdan foyda olishingiz mumkin, lekin siz public_htmldan yuqoridagi fayllarni ta'sir qilmaysiz.
qo'shib qo'ydi muallif Miles D, manba
Aahangel Krish, buqaning ko'ziga urding. Qo'shimcha uchun rahmat.
qo'shib qo'ydi muallif ltd, manba
Maxning javobidir. Unga +1. Men uni kengaytirishga harakat qilaman.
qo'shib qo'ydi muallif Bill, manba
wp-config.php public_html katalogida joylashtirilgan bo'lsa, (1) katalogdan tashqarida public_html katalogida bo'lishini bildiradi. Bunday holda HTTP so'rovlarini wp-config.php-ga rad qilish uchun HTCcess qoidalarini ishlatishingiz kerak bo'ladi. (2) Agar WordPress to'g'ridan-to'g'ri public_html katalogi ostiga o'rnatilgan bo'lsa, bir daraja yuqoriga => uni /home/user katalogiga ko'chiring . Bunday holatda fayl sizning hujjat ildizidan tashqarida bo'lgani uchun siz juda xavfsizsiz. Hali ham faylning ruxsatini 600 (yoki hatto 440 yoki 400 ta) yanada sozlashingiz mumkin.
qo'shib qo'ydi muallif Bill, manba
@IanDunn Men aytganimdek, bu mening asosiy tushuncham va men xavfsizlik bo'yicha mutaxassis emasman. :)
qo'shib qo'ydi muallif Bill, manba

Kimdir bizga porlashni so'radi, men bu erda javob beraman.

Ha, sizning veb-saytingizning ildiz katalogidan wp-config.php-ni ajratib olishdan xavfsizlik afzalliklari mavjud.

1- Agar sizning PHP operatoringiz singan yoki o'zgartirilgan bo'lsa, JB ma'lumotingiz ta'sir qilmaydi. Va, ha, bu server yangilanishlari davomida birgalikda xostlarda bir necha marta sodir bo'lganini ko'rdim. Ha, sayt o'sha davrda buziladi, lekin parollaringiz buzilmaydi.

2- Eng yaxshi tajribalar har doim konfiguratsiya fayllarini ma'lumotlar fayllaridan ajratishni tavsiya qiladi. Ha, WordPress (yoki biron bir veb-ilovasi) bilan buni qilish qiyin, biroq uni ko'chirish biroz izolyatsiyaga ega.

3- Remember the PHP-CGI vulnerability, where anyone could pass the ?-s to a file and view the source. http://www.kb.cert.org/vuls/id/520827

Natijada, ular kichik tafsilotlar bo'lib, ular xavfni kamaytirishga yordam beradi. Ayniqsa siz birgalikda muhitda bo'lsangiz, har kim sizning ma'lumotlar bazasiga kira oladi (ularning barchasi foydalanuvchi/pass).

Biroq, saytni to'g'ri tarzda xavfsiz ta'minlash uchun chindan ham zarur bo'lgan narsalar oldida kichik distraksiyalar (vaqtincha optimallashtirish) ga yo'l qo'ymang:

1. Har doim yangilanib turing

2- Kuchli parollardan foydalaning

3- Kirishni cheklash (ruxsatnomalar bilan). Bizda bu haqda post bor:

http://blog.sucuri.net/2012/08/wordpress- xavfsizlik-kesish-to-the-bs.html

rahmat,

15
qo'shib qo'ydi
Hey bolalar, fikrlaringizni qo'shganingiz uchun tashakkur. O'ylaymanki, biz bu savollarning aksariyatiga boshqa javoblar va ularning sharhlarida qo'shilamiz. 1) Ha, bu mumkin, lekin juda kam; 2) Ha, bu imtiyozlarga ega, ammo ular juda kam; 3) Ha, bu mumkin, ammo bunday zaiflik turining yana sodir bo'lish ehtimoli yo'q va unga qarshi himoya qilish - bu "o'ynoq" o'ynash yoki aeroportlarda odamlarni poyabzallarini olib tashlash kabi narsadir. poyabzal bir marta. Bu kelajakda manfaatlarga ega bo'lishi mumkin emas.
qo'shib qo'ydi muallif Miles D, manba
Turli munozaralarda savol "Qayerda foyda bor?" "OK, bir qator imtiyozlar bor, lekin ular bu xavflardan ko'proq tashvishga tushadimi?" Sizning asosiy riskim, PHP kirish skriptlarini veb-ildizdan tashqarida qoldirish uchun openbase_dir kengaytmasini kengaytirish kerakligi faktidir. Ko'plab hosting sozlamalari - veb-ildiz yuqorida joylashgan katalogda veb-ildizdan ajratilgan bo'lishi kerak bo'lgan ko'plab do'kon qaydlari, zaxira nusxalari, maxsus FTP maydonlari va boshqalar. Shunday qilib, PHPga ushbu katalogga kirish imkoniyati jiddiy zaiflik bo'lishi mumkin.
qo'shib qo'ydi muallif Miles D, manba

Albatta, ha.

Wp-config.php faylini umumiy katalogdan tashqariga ko'chirsangiz, uni brauzer yordamida o'qishdan saqlaysiz, chunki PHP operatori noto'g'ri (yoki tasodifan!) O'zgartiriladi.

Sizning DB-login/parolingizni o'qish serverni cho'loq administratorning xatosi tufayli juda kam yuqtirilganda yuzaga kelishi mumkin. Administratorni jarima to'lang va yaxshiroq va ishonchli server hostini oling. Bu qimmatroq bo'lishi mumkin.

14
qo'shib qo'ydi
Xostlar vahshiyona farq qiladi; standart katalog tuzilmasi yo'q. Plesk (birgalikdagi xostlar uchun eng mashhur boshqaruv panellaridan biri) loglarni /var/www/vhosts/example.com/statistics/logs manziliga qo'yadi va hujjat ildizi /var/www/vhosts/example.com/httpdocs. Wp-config.php faylini /var/www/vhosts/example.com/wp-config.php saytiga ko'chirish, misol uchun, example.com katalogiga skriptlarni kiritishni talab qiladi.
qo'shib qo'ydi muallif Miles D, manba
Agar buzg'unchiga PHP ishlovchilarini o'zgartirish uchun etarlicha kirish imkoni bo'lsa, siz allaqachon vidalanmışsiz. Tasodifiy o'zgarishlarni tajribamda juda kam uchraydi va bu holda parolni o'zgartirish oson bo'ladi. Ushbu narsalar asosida siz hali ham kengaytirilgan open_basedir doirasi sababli jurnallar/zaxiralashlar va boshqalarni ochish xavfiga dosh bera olasizmi?
qo'shib qo'ydi muallif Miles D, manba
wp-config.php fayl nomi wp-load.php -ga qattiq kodlangan, shuning uchun yadroni almashtirmasdan o'zgartirish mumkin emas.
qo'shib qo'ydi muallif Miles D, manba
Faqat qiziqishdan tashqari, domeningiz katalogida bo'lmasa, sizning jurnallaringiz va zahira nusxalari qaerda saqlanadi? Ular nazorat paneli yoki biror narsadan foydalana oladimi?
qo'shib qo'ydi muallif Miles D, manba
Ha, boshqaruv paneli orqali.
qo'shib qo'ydi muallif ltd, manba
Hech qachon open_basedir bilan tanish bo'lmaganman, shuning uchun -public_html dan yuqori kataloglarga ega bo'lmagan -rwx kirishga ega bo'lmaganman. Mening jurnallarim alohida katalogda, shuning uchun zahiralar bajariladi. O'ylaymanki, bularning barchasi birgalikdagi xostlardir.
qo'shib qo'ydi muallif ltd, manba
Men bu haqda noto'g'ri bo'lishi mumkin, lekin agar sizning serveringiz xavfsiz bo'lmasa, symlink hujumi qaerda bo'lishidan qat'i nazar, wp-config.php faylini o'qishi mumkin. Barcha buzg'unchilar faylni qaerda bo'lishi mumkinligini bilish kerak va agar symlinking mumkin bo'lsa. Bu, ehtimol, yopiq mavzu bilan bog'liq savol bo'lsa kerak, lekin bu wp-config.php nomini o'zgartirish uchun usul mavjud bo'lsa, bu fishingni oldini olishning bir usuli bo'lishi mumkin.
qo'shib qo'ydi muallif User2577, manba

Faqat wp_config.php faylini ko'chirishingiz argument uchun, uni faqat ota-katga ko'chirish kerak degani emas. Keling, sizda/root/html kabi bir tuzilishga ega ekanligingizni ayta olamiz, bu erda HTML-da WP-ni va barcha HTML tarkibingizni o'z ichiga oladi. Wp_config.php faylini/root-ga ko'chirishning o'rniga,/root/secure ... kabi html katalogidan tashqari va serverning ildiz katalogida bo'lmagan narsalarga ko'chirishingiz mumkin. Albatta, PHP ushbu xavfsiz papkada ishlashiga ishonch hosil qilishingiz kerak.

Since WP cannot be configured to look for wp_config.php in a sibling folder like /root/secure, you have to take an additional step. I left the wp_config.php in /root/html, and cut out the sensitive portions (database login, salt, table prefix) and moved them to a separate file called config.php. Then you add the PHP include command to your wp_config.php, like this: include('/home/content/path/to/root/secure/config.php');

Bu aslida mening sozlashim bilan bog'liq. Yuqoridagi munozaralarga asoslanib, men hali ham kerakmi yoki yaxshi fikrmi yo'qmi, deb baholayman. Lekin men yuqoridagi konfiguratsiya mumkinligini qo'shishni istadim. Zaxira nusxalarini va boshqa ildiz fayllarini ta'sir qilmaydi va xavfsiz papka o'zining ochiq URL-manziliga o'rnatilmasa, u ko'zga tashlanmaydi.

Bundan tashqari, u bilan birga .htaccess faylini yaratish orqali xavfsiz papkaga kirishni cheklashingiz mumkin:

order deny,allow
deny from all
allow from 127.0.0.1
7
qo'shib qo'ydi
Hey Michael, buni almashish uchun rahmat. Uni haqiqiy muhitda tekshirib ko'rganmisiz? open_basedir direktivasi /root/html dan /root/secure ga kirish uchun daraxt kodi> open_basedir ni /root deb belgilashingiz kerak.
qo'shib qo'ydi muallif Miles D, manba
O'zingizning fikringizni amalga oshirish uchun kodni /root/httpdocs/config/accessible kabi katalog tuzilishini sozlashingiz kerak, deb o'ylayman. Bu erda httpdocs va boshqalar; config wp-config.php ni tutadi va accessible WordPress va barcha tarkibni saqlaydi. Hujjat ildizini accessible deb o'zgartirish uchun vhost konfiguratsiyasini va boshqalarni o'zgartirishingiz kerak. Biroq, HTTP so'rovlarini faqat standart sozlamada wp-config-ga rad etish orqali hech qanday foyda ko'rmayapman.
qo'shib qo'ydi muallif Miles D, manba
Men buni sinab ko'rdim va siz haqligdagidek ko'rinadi. Men hali ham Apache orqali faylga kirishni rad etish orqali xavfsizlikning qanday foydasi borligiga ishonchim komil emas.
qo'shib qo'ydi muallif Miles D, manba
Uning ishonarli dalillarini topolmayman. Men nima uchun uning javobiga izoh berishim sababini tushuntirdim.
qo'shib qo'ydi muallif Miles D, manba
@IanDunn Aaron Adamsning javobiga yaxshi javob berdi
qo'shib qo'ydi muallif Andrei Veshtard, manba
php.net/manual/en/ini saytiga ko'ra. core.php # ini.open-based : "Windows ostida katalogni nuqta-vergul bilan ajratib qo'ying ... Barcha boshqa tizimlarda kataloglarni ikkita nuqta bilan ajratib oling. Apache moduli sifatida yuqori kataloglardan ochiq-oydin yo'llar ochiladi meros qilib olingan. " Shunday qilib, bir nechta katalogni o'rnatishingiz mumkin, ular bitta daraxtda bo'lishi kerak emas.
qo'shib qo'ydi muallif Pkkm, manba

Bu erda juda ko'p yomon yozma mavzular va plaginlar bor, ular atatekerlarga kodni kiritishni (Timthumb bilan xavfsizlik masalasini eslayman). Men tajovuzkor bo'lar edim, nega wp-config.php-ni qidirishim kerak? Ushbu kodni AOK qilish:

var_dump( DB_NAME, DB_USER, DB_PASSWORD );

Wp-config.php faylini yashirishga urinib ko'rishingiz mumkin. WordPress barcha nozik ma'lumotlarni butun dunyo bo'ylab foydalanish imkoniyatiga ega bo'lgunga qadar, wp-config.php-ni yashirishning foydasi yo'q.

Wp-config.php-dagi noto'g'ri ma'lumotlar, u nozik ma'lumotlarga ega emas. Yomon qism - bu sezgir ma'lumotlarni global miqyosda mavjud bo'lgan doimiy qiymat sifatida aniqlash.

yangilash

define() bilan muammolarni hal qilishni istayman va neytral ma'lumotlarni global barqaror deb aniqlab berishning yomonligi.

Veb-saytga hujum qilishning ko'p yo'li mavjud. Skript inyeksiya - saytni yo'q qilishning yagona yo'li.

Serverni xotirjam xotira yong'indan foydalanishiga yo'l qo'yadigan zaiflik mavjud deb hisoblasangiz. Tajovuzkor xotirada barcha o'zgaruvchilardan barcha qiymatlarni topadi. Agar siz global miqyosda mavjud bo'lgan doimiylikni aniqlasangiz, u skript yakunlanmaguncha xotirada qolishi kerak. Turg'un o'rniga o'zgarmaydigan yaratish, axlat yig'uvchisi o'zgarmaydigandan keyin xotirani qayta yozish (yoki bo'shatish) yaxshi imkoniyatga ega.

Nopok ma'lumotni himoya qilishning eng yaxshi usuli - ulardan foydalangandan keyin uni darhol yo'q qilishdir.

$db_con = new stdClass();
$db_con->db_user = 'username';
$db_con->password = 'password';
$db_con->host = 'localhost';

$db_handler = new Database_Handler( $db_con );

$db_con = null;

Hassali ma'lumotlardan foydalangandan so'ng, null ga tayinlash xotiradagi ma'lumotlarni yozib beradi. Tajovuzkor, $ db_con da nozik ma'lumotlarni o'z ichiga olgan ondagi xotira borini olishlari kerak. Va bu yuqoridagi misolda juda qisqa vaqt (agar Database_Handler sinf nusxasini saqlamasa).

4
qo'shib qo'ydi
Men uni ko'chirish foydasiga bahslashayotganlar, brauzerda HTTP so'rovi orqali oddiy matnda wp-config.php ko'rsatilishi mumkin bo'lgan stsenariylardan himoyalanishga harakat qilmoqdalar deb o'ylayman. Bu stsenariylarda hostda ishlaydigan boshqa PHP kodlari paydo bo'lishi mumkin.
qo'shib qo'ydi muallif Miles D, manba
identify qanday aniqlangan bo'lsa, globallashtirilganligi haqida haqiqatan ham yaxshi fikr.
qo'shib qo'ydi muallif Mike-DHSc, manba
Asl savolda "wp-config.php" ni yashirish orqali ma'lumotlar bazasi hisobini himoya qila olaman ". Asl savol: "wp-config.php faylini ko'chirish mantiqiy". Javob, albatta, ha, IMO. Bu sizning oldingizda eshikni qulflash kerakligini so'rashga o'xshaydi. "Kimdir osongina derazani buzishi va har qanday vaziyatga tushib qolishi mumkin, demak nima uchun bezovtalanish" so'zi asosiy mavzusiga javob bermaydi. IMO bu savolga shunday javob berdi: "wp-config.php-ni ko'chirish uchun qo'shimcha harakat qilish kerakmi?" Ha. Hech bo'lmasa, bu dangasa xakerlarni saqlab qoladi.
qo'shib qo'ydi muallif lumpynose, manba
@ Ralf912 - bu aniq emas. Global ta'riflar barcha kataloglardagi barcha dastur fayllari tomonidan ACCESSIBLE hisoblanadi, lekin ko'rsatilmaydi. Siz qiymatlarni ko'rib chiqish uchun o'zgartirilgan kodni serverga yozish imkoniyatiga ega bo'lishingiz kerak. Doc ildizida wp-config.php bilan noto'g'ri tuzilgan server ushbu qiymatlarni oddiy matn sifatida ko'rsatishi mumkin. Bu asosiy nuqta. Plaginlar/mavzular uchun kodni ko'rib chiqish hech qanday zarar etkazmaydi.
qo'shib qo'ydi muallif lumpynose, manba
Bu javob to'g'ridan-to'g'ri savolga javob bermaydi. Har qanday plagin muallifi sizning kodingizni o'rnatishga va zararli niyatlarga ega bo'lishingizga ishonch hosil qilgan holda, WordPress bilan bir kunlik kunga ega bo'lishi mumkin. Sizning sistemangizda virusni o'zingiz xohlagan tarzda o'rnatganingizdan farqli emas. Wp-config.php-ni ko'chirmaslik uchun ushbu dalil noaniq. Bu sizning mashinangizga avtomobil bomba o'rnatish istagi bilan avtomobil signalini ishga yaramaydi. Texnik jihatdan to'g'ri, lekin WTF?!
qo'shib qo'ydi muallif lumpynose, manba
Yo'q, bu bejiz emas. Savol: Wp-config.php faylini yashirish orqali ma'lumotlar bazasi hisobini himoya qila olamanmi? Va javob aniq: Yo'q. «Avtomobilni bomba tashish mashinasiga qarshi himoya qila olamanmi?» Degan savolga o'xshash. Wp-configni ma'lumotlar bazasiga kirish yoki FTP-ni himoyalash kabi yashirish orqali boshqa hech qanday foyda yo'q. Har ikkalasi ham global miqyosda. Ishonchim komilki, tajovuzkorlarning global standartlarga kirib, kodni in'ektsiz olishlari mumkin.
qo'shib qo'ydi muallif OJFord, manba
Xavfsizlikning eng keng tarqalgan usullaridan biri ... Siz juda muhim (juda muhim) nuqtani o'tkazib yubordingiz: qanday tajovuzkorga qiziqish bor? Va emas, balki sizning wp-config.php-ni qanday qilib takrorlaysiz? Agar tajovuzkor sizning wp-config-da siz belgilagan qadriyatlarga kirsa. O'zingizning oldingi eshikdan namunani olish: wp-configni yashirish oldingi eshikni qulflash kabi bir xil, ammo barcha oltinlarni bog'da himoyasiz saqlash. Wp-configda belgilangan barcha qiymatlar butun dunyo bo'ylab belgilangan. Shunday qilib, all wp-config tashqari foydalanish mumkin. Wp-config-ni yashirsa ham, qadriyatlar hali ham mavjud.
qo'shib qo'ydi muallif OJFord, manba

Xavfsizlik imtiyozlaridan tashqari, WordPress fayllarini submodul/tashqi sifatida saqlash paytida, shuningdek, WordPress nusxasini versiya boshqaruvi ostida saqlashga imkon beradi. Mark Jaquit o'zining "WordPress-Skelet" loyihasini shunday yo'lga qo'ydi. Ma'lumotlar uchun https://github.com/markjaquith/WordPress-Skeleton#assumptions ga qarang.

1
qo'shib qo'ydi
Hujjatning asl nusxasida uni tashkillashtiradi, shuning uchun bu savolga tegishli emas. So'ralgan savol texnikasi wp-config.php -ni yuqorida joylashgan vhost-ning hujjat ildizini ustiga ko'chirishingizni bildiradi, faqatgina WordPress o'rnatish papkasida joylashgan bir katalog emas. Barcha nuqta HTTP so'rovlari bilan o'qilishi mumkin bo'lgan papkadan tashqarida olishdir.
qo'shib qo'ydi muallif Miles D, manba