Analiz ve değişiklik için PHP betikleri. XSS saldırılarına karşı savunma

bıyık yazılım ürünleri PHP betiklerini barındırmak için iki kategoriye ayrılırlar: sunucuya eklenti modüllerinin nasıl kurulacağı ve web sunucularının varsayılan yapılandırmasının nasıl ele alınacağı. Birincisi, PHP betiklerini metin tabanlı bir görünümden özel bir ikili koda çevirmek ve ayrıca sunucuya yönetici haklarıyla erişime izin vermek için güvenlik açısından daha önemlidir. Diğerleri, ücretsiz olanlar da dahil olmak üzere PHP destekli tüm barındırmalarda pratik olarak pratik yapabilir, ancak kötü olan için büyük bir sorun haline gelmez. Bir alt grupta, şifrelenmemiş ancak kabartmalı orijinal kodu görebilirsiniz.

Aynı sunucuda Zahist:

Zend Encoder / Zend SafeGuard Suite - en popüler ticari koruma, Zend destek modülleri tüm ücretli barındırmalara kurulur. Zend, komut dosyalarını etki alanlarına ve ip'ye bağlayabilir, bir deneme komut dosyası robotu kurabilir ve karartmaya çalışabilir. Tüm işletim sistemlerini destekliyoruz. Genel erişimde, Zend'i anlamak için birkaç yardımcı program seçeneği vardır, hepsi PHP 4-ї ve 5-ї sürümleriyle modifiye edilmiştir.Zend'in eski sürümleri sorunsuz çalışır, geri kalanında ise gizleme yoluyla katlamayı suçlarlar. çıkış kodu.

Aktif olarak gelişen yeni bir ticari kampanya. Üst API'ler düzeyinde, korunan, işlemler tarafından desteklenen komut dosyalarıyla etkileşime güveniriz. Windows sistemleri o Linux. Küçük genişlik nedeniyle, normal sanal barındırma üzerine kurulmaz, ancak diğer sunucularda kısa listeye alınmış bir sunucu olarak kurulabilir. Genel kod çözücüler yoktur.

Ticari zakhist pratikte büyümez, sanal barındırmalara kurulmaz. Bilinen sunucuların tam saatine göre tarihlerin tersine çevrildiği robotik komut dosyaları için bir deneme süresi ayarlamanıza, korumalı komut dosyalarını sunuculara, ip adreslerine, MAC adreslerine bağlamanıza olanak tanır eskrim kartları ayrıca, verilerin sayıları deşifre edilmek üzere vikora edilir. Tüm işletim sistemlerini destekliyoruz. Genel kod çözücüler yoktur.

phpSHIELD. PHP için SourceGuardian prototipi. İki perakendecinin öfkesinin ardından bağımsız bir ürün olarak gelişmeyi bıraktılar. Aynı ana işlevsellik, genel kod çözücülerin olmamasıdır.

ionCube PHP Kodlayıcı. Komut dosyalarının korunması için bir başka popüler ticari ürün. Zend için halka açık kod çözücülerin ortaya çıkmasından sonra, giderek daha fazla muzaffer oldular ve sanal barındırmalara kuruldular. Yalnızca komut dosyalarını değil, şablonları, XML belgelerini, görüntüleri, ikili dosyaları da şifrelemenize olanak tanır. Dosyaların korumasını sunuculara ekler, є sabit obfuscator, tüm işletim sistemlerini destekler. Halka açık kod çözücüler yoktur, ancak deZender bazı bölgelerde bilinmektedir.

PHTML Kodlayıcı. Ticari sistem küçük ölçeklidir, normal işletim sistemleri altında çalışan bu tür ürünler için en iyi işlevselliği sağlar. Bir ücret karşılığında, bir tatil kodu ekleyebilir ve ihtiyaçlarınıza göre değiştirebilirsiniz. Genel kod çözücüler yoktur.

dwebencoder. Windows için egzotik koruma, CD'lerde komut dosyası sunumları ve kataloglar oluşturmaya yönelik uygulamalar. Yüklü olan, üzerinde php komut dosyalarının kodlandığı, kendi kendine barındırılan bir web sunucusuna benziyor. Genel kod çözücüler yoktur.

PHP Kompakt. Zakhist daha teorik, daha az pratik. Forumlardan birinde rozroblyalas'dım, ancak benzer şekilde sağdaki yazarın yayınları için dışarı çıkmadım. Çalınan komut dosyalarının yanı sıra kod çözücüler de yoktur.

Eski php hızlandırıcılara kod ekleme Turck MMCache ve eAccelerator. Kodun hızını artırma yöntemiyle komut dosyalarını bayt koduna dönüştürün. Є Windows ve Linux için modüllerin sürümleri. Halka açık kod çözücüler yoktur, ancak belki açık kod projenin vivchenni tarafından desteklenmesi gerekiyor.

Kodun aynı gününde Zahist:

PHP LockIt! . Popüler ticari saldırgan, çoğunlukla yabancı perakendecilerin komut dosyalarında oldukça sık yayınlanır. Robotik komut dosyaları için bir deneme süresi yüklemenize, bir etki alanına ve bir ip adresine bağlantı kurmanıza, komut dosyalarını standart php (gzinflate) yöntemleriyle sıkıştırmanıza olanak tanır. Tek katlama, önden bir obfuscator. Paketin farklı sürümleri, yalnızca paket açma modülü değiştirilerek yükseltilir. Bir kılavuz gibi kolayca znіmaєtsya, yani otomatik mod. Bir obfuscator olmadan, bir obfuscator ile tam olarak çıktı kodunu okur, ek işlemeyi hesaba katar.

CNC kripto. Demo sürümlerine ücretsiz erişim yoktur, analiz çalıntı komut dosyalarının arkasında gerçekleştirildi. Asılı katlama modülü, ambalajsız olarak görünmüyor, yalnızca çıktı kodunun iyi bir şekilde karartılmasıyla kırpılıyor.

PHPŞifre. Zahist çevrimiçi bir hizmettir. Scriptlerinizin olduğu arşivler siteye alınıyor, çalınarak geri alınıyor. Ücretli bir lisans, kredilerinizle betiklerin korunmasını imzalamanıza ve ticari amaçlarla kazanmanıza olanak tanır. Ücretsiz lisans sadece özel ihtiyaçlara izin verir. Defender'ın kendisi, korumalı betiklere bağlı olan Zend "php-module" tarafından korunur. DeZend'den sonra ve modül korunur, gerekli tüm sabitler koda alınır. Obfuscator işlevi yoktur.

PHP için ByteRun Koruyucu. Ticari bir ürün, lisans türüne bağlı olarak, komut dosyalarını hem sunucu düzeyinde hem de harici kod düzeyinde korumanıza olanak tanır. Standart olanaklara sahip sunucu zahistinde özel bir şey yoktur. Zahist eşit betikler üzerinde otomatik ve manuel olarak kolayca yapılabilir. Sunucu sürümü için genel kod çözücü yoktur.

Vіtchiznyanykh rozrobnikіv zahist arasında daha da popüler. Є şiddetle zasmіchenim boş kod modülü zakhistu, aracılığıyla bağlı olan zahranіh scriptіv içerir. Kod çözme algoritması daha da basittir, manuel veya otomatik alım için günlük kıvrımları çağırmaz. Tüm türler için, çıktı kodu hala bilinmektedir, obfuscator işlevi yoktur. Birkaç nefeslik kod çözme için birkaç özellik vardır, ancak burada pis koku tarif edilmeyecektir.

kod kilidi. Bir başka popüler zakhist, okuma yazma bilmeyen bir programcının mucizevi poposu. Ben javascript kullanarak tarayıcıda betiklerin kendileri ve çalışmalarının sonucunu gibi kodlamanıza izin veren bir php programıyım. Komut dosyaları bir parola ile korunabilir, ancak vasat bir uygulama ile parola, tepe korumasını bilmeden kolayca tanınabilir. Koruma modülü, korunan komut dosyalarına bağlanan boş bir kodla değiştirilen bir php komut dosyasıdır. Algoritma zakhistu daha da basittir, çıktı koduna daha aşinadır. Gizleme işlevleri yoktur.

TrueBug PHP Encoder, yakın zamanda TrueBug PHP Obfuscator & Encoder. dosl_dzhennya için Dzhe ts_kavy koruyucusu. 1.0.2 sürümünden önce standart php almak gzip sıkıştırması için, 1.0.3 sürümünden başlayarak, yazarlar kendi sıkıştırma algoritmalarını genişlettiler. Yeni ürün TrueBug PHP Obfuscator & Encoder artık çıktı kodunun karartılması ve optimizasyonu işlevine sahiptir. Saldırının tek zayıf noktası, komut dosyalarının kodunu çözmek için bir komut dosyası sonrası algoritmasıdır ve saldırının dış görünüm versiyonu için algoritma değiştirilir. Analizden sonra, zahistin tam kodu tam olarak okumak kolaydır, doğal olarak zihin için bu yaygın bir şaşırtmaca değildir.

Zorex PHP CryptZ. Yoga robotları için Zakhist, yak ve CodeLock, є php eki gereklidir MySQL veritabanı. Zakhistu modülü - php'ye bağlanan, bir kilka topunda şifreleyen bir komut dosyası. Analizden sonra, algoritma çıktı koduna kadar tam olarak anlaşılması kolaydır. Obfuscator işlevi yoktur.

Ücretsiz PHP Kodlayıcı. Php komut dosyalarını kodlamak için ücretsiz çevrimiçi hizmet. Ana bilgisayarın modülü, siteden alınması gereken Zend tarafından saldırıya uğrayan bağlı bir php betiğidir. Algoritma hızlıdır, obfuscator işlevleri mevcut değildir.

PHP betiği, ilkel kodlama, standart base64. Daha fazla saygı övgüye değer değildir ve pratik bir ilgi yoktur.

Standart wp-signup.php yerine çoklu site için yetkili bir kayıt sayfası oluşturuyoruz.

İlk başta gömülü WordPress wp-login.php dosyasını görüntülemek için kayıt tarafı (yetkilendirme, şifre sıfırlama).

  • /wp-login.php - yetkilendirme
  • /wp-login.php?action=register - kayıt
  • /wp-login.php?action=lostpassword - Kayıp parola

Çok siteli bir wp-login.php için akıllı olmanız gerekir. Bu nedenle, WordPress çoklu sitesinde /wp-login.php?action=register'a gittiğinizde, /wp-signup.php tarafına yönlendirileceksiniz. Zengin konularda, taraf pek hoş görünmüyor, kontrol edebileceğim.

merezhі'nın ana sitesi

WordPress promosyonu için, işletmenin ana etki alanında (web sitesi) bir kayıt sayfası (wp-signup.php) oluşturursunuz. Prote, satıcının dermal web sitesi için bir kayıt sayfası oluşturabilir, böylece farklı konulara sahip olurlar. Aradaki farka bakarız, eğer Merezha'nın tüm sitelerinin kendi kişisel kayıt sayfası varsa, ancak aynı konu seçilmişse ve siteler artık benim değil. Farklı konular olarak vykoristovuyutsya, daha fazla kod yazmak gerekiyor.

fonksiyonlar.php?

Ni. Im'ya dosyası, zdaєtsya, zgaduєtsya, WordPress hakkında bilgi verir. Kanaatimizce, bir site yumurtlamasında sigorta kaydetme işlevine sahip olanlara baktığımızda, bir siteye yazarken karıştıkları için MU eklentilerinde yogayı suçlamak için hiçbir neden yoktur.

şarkı sözü girişi

Wart, MU eklentilerinin ikincil eklentiler için daha önce kullanıldığını ve WordPress çekirdeği tamamen dolmadan önce kullanıldığını belirtmek için bu işlevlere birkaç tıklama çağrılabilir. ölümcül af PHP'de. Benzer "erken" ilerlemenin artıları olabilir. Diyelim ki, bunların ortasındaysanız, bazı işlemlere çıkamazsınız, bu yüzden bunlarla function.php dosyasına girmeyi deneyebilirsiniz. Bunun bir örneği, Jetpack'teki modüllerin etkinliğini kontrol edebileceğiniz yardım için jetpack_module_loaded_ Related-posts (ilgili gönderiler - modülün adı) biçimindeki Jetpack eklentisinden eylemler olabilir. Bu eylemden önce, eylemin zaten meşgul olduğu dosyalara "eklemek" imkansızdır - eklentiler daha önce işgal edilir. Kodun Eylem Referansı tarafında WordPress katılım siparişinin büyük resmine bakabilirsiniz.

Dosya sırası

MU eklentileri, size mantıklı göründüğü gibi, aynı yapıdaki herhangi bir sayıda dosyayı değiştirebilir. Yaklaşık olarak aşağıdaki hiyerarşiyi tamamlayacağım:

|-mu-plugins |-|-load.php |-|-|-selena-network |-|-|-|-kayıt |-|-|-|-|-plugin.php |-|-|-| -|-... |-|-|-|-jetpack |-|-|-|-|-plugin.php

load.php dosyası, önlemimiz için gerekli tüm eklentileri içerir:

// Tüm eklentiler için Çevirileri Yükle load_muplugin_textdomain("selena_network", "/selena-network/languages/"); // Ağ Kaydı WPMU_PLUGIN_DIR gerektirir. "/selena-network/signup/plugin.php"; // Diğer eklentiler // WPMU_PLUGIN_DIR gerektirir ...

Selena-network klasörünün ortasında, eklenti klasörleri kaydedilir, kaplamanın kendi plugin.php dosyası vardır, bu yüzden onu load.php içine dahil ederiz. Bu, mozhlivіst shvidko vіdklyuchati olduğunu ve deakі konuşmasını içerdiğini gnuchkіst ver.

Kayıt taraf adresleri

Kayıt tarafının adresini belirtmek için wp_signup_location filtresi seçilir. Bunu wp-login.php dosyasının ortasında bulabilir ve wp-signup.php'nin kendisine yönlendirebilirsiniz.

Case "register" : if (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); çıkış;

Kayıt tarafının adresini akış sitesine girebilmeniz için işlevinizi mu-plugins/selena-network/signup/plugin.php dosyasına ekleyin:

fonksiyon selena_network_signup_page ($url) ( home_url'ye dön () . "/signup/"; ) add_filter ("wp_signup_location", "selena_network_signup_page", 99);

selena_network - sitemdeki MU eklentilerinin ortasındaki tüm işlevlerin adlarında gizli anlaşmayı önlemek için kullandığım ve ardından kendi benzersiz önekinizle değiştirdiğim bir önek. Bir filtre eklemenin önceliği 99'dur, bu nedenle diğer eklentiler, örneğin bbPress ve BuddyPress dosyadaki bu adresin üzerine yazabilir (MU-eklentileri daha önce alınır, daha düşük ad eklentileri, div. daha yüksek). Aynı etki alanını kontrol etmemeniz için network_site_url() yerine home_url() öğesinin kazandığına saygı gösterin. Adres gibi, onu da URL'ye çevirebilirsiniz.

yan kat

Şimdi özel bir arayüz aracılığıyla site.com/signup/ adresiyle bir taraf oluşturalım ve ana klasörde, şablonumuzun şablonu yeni taraf- page-signup.php. "Kayıt" kelimesi benzersiz bir kimlikle değiştirilebilir.

Yeni şablonun içinde, kayıt formunu görüntülemek için selena_network_signup_main() işlevini çağırmak gerekir.

Lütfen tüm sürecin şablonlara bağlı olmadığını ve selena_network_signup_main() işlevini de çağıran kendi kısa kodunuzu oluşturabileceğinizi unutmayın.

wp-signup.php ve wp-activate.php

Şimdi bir kayıt formu oluşturuyormuşuz gibi fonksiyonların oluşturulmasına bir göz atalım. wp-signup.php ve wp-activate.php dosyalarını mu-plugings/selena-network/signup/ adresindeki WordPress kökünden kopyalayanlar için (ve bunları mu-plugins/selena-network'ün ortasına eklemeyi unutmayın) /signup/plugin.php) . Dosyalarla daha fazla manipülasyon daha da tutarlıdır ve uzun süre açıklanabilir; Sadece kendim üzerinde çalışmam gerekenleri anlatacağım ve projemin harici dosyalarını yayınlayacağım:

  1. Dosyanın üst kısmında, tüm gereksinim, hızlı tıklama işlevleri ve işlevlerin arkasındaki diğer kodlara bakın.
  2. Adlara benzersiz önekler ekleyerek tüm işlevleri yeniden adlandırın.
  3. wp-signup.php kodunun alt kısmını selena_network_signup_main işleviyle sarın ve koçanın üzerine global $active_signup yazın; .
  4. Gerekli alanlarda düzeni vlasnu olarak değiştirin.

wp-activate.php içinde, yaklaşık olarak aynısını eklemeniz gerekir:

  1. Tüm kodu işlevlerle görüntüleyin, düzeni diğer işlevin etrafına sarın.
  2. Düzeni gerekli olan alanlarda değiştirin.

wp-activate.php dosyası, eğik kaydın aktivasyon tarafı için düşünülür. Üçüncü bir kayıt tarafı olarak, bunun için özel bir şablon oluşturmanız gerekir, wp-activate.php dosyasındaki aynı çağrı işlevini kullanın.

Nadsilaemo yaprak aktivasyonu

Kayıt ofisi, oblikovy kaydının etkinleştirilmesi talebi ile sayfanın alınmasını zorlar. ms-functions.php dosyasındaki wpmu_signup_user_notification() işlevi, cym zapping ile ilgilenir. Її işlevi, kendi işleviniz için atanabilir. Bu işlevi değiştirmenin gerekli olmasının nedeni, eğik kaydın wp-activate.php adresinden etkinleştirilmesini zorlamanın gerekli olmasıdır. Bu işlevi, zaten yanlış olan ek wpmu_signup_user_notification filtresini kullanarak "kapatabilirsiniz" (bu yüzden kapatmayın, etkinleştirme sayfası iki, tamam, gerçekten iki farklı sayfa düzenlenecektir).

İşlev Armyofselenagomez_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // ... // wpmu_signup_user_notification() işlevi için kod wp_mail($user_email, wp_specialchars_decode($subject), $ ; return false; ) add_filter("wpmu_signup_user_notification", "armyofselenagomez_wpmu_signup_user_notification", 10, 4);

Sonuç olarak, Selena konularındaki kayıt sayfası daha zengin ve düzenli görünmeye başladı.

Visnovok

İnternette, bunu kendiniz yapmanın daha iyi bir yolu yoktur - Apache yönlendirmeleri, AJAX formları, Java Script olmadan çalışmama gibi siteler vb.

Dosyaları dikkatli bir şekilde düzenlemenize ve tatillerde çok fazla ortalığı karıştırmamanıza saygı duyacağım, bu nedenle gelecekte, WordPress gibi wp-signup.php ve wp-activate.php dosyalarını değiştirmek, icabına bakmak daha kolay Kendinizi bir değişiklik için

Kodun ortasında ne olduğunu anlayabilmem için diğer işlevlerin tüm açıklamalarının çıktı koduna hayret etmeyi unutmayın.

Bonus. Spam gönderenlere karşı savunucu

WordPress'teki en iyi siteleri bulun, genellikle çok sayıda spam kaydı alır. Botları filtrelemek için karmaşık olmayan zihinler yazabilirsiniz, genellikle bir parça zeka oluşturmaya çalışmaya benzer 🙂 (Apache'yi özelleştirme konusunda uzman değilim, bu yüzden kurallarım doğru olmayabilir).

RewriteBase'de RewriteEngine / RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # Wordpress görünüm kurallarının kilitlenmesi gerekmez :) # ... # END WordPress

PS Üçüncü şahıs konuşmalarının eylemlerini mümkün olduğunca ayrıntılı olarak açıklamaya çalışıyorum, eğer başlasaydım, bir saat boyunca herkesin birçok konuşmayı anlatması ve açıklaması mümkün oldu. Bu nedenle, yeni bir şey geliştirmek ve bilginizi genişletmek için diğer malzemelerdeki benzer şekilde küçük tümevarımların geliştirilebileceğine saygı duyuyorum. RewriteRule girişleri etiketlendi düzenli virüs, kokular katlanmaz, örneğin ^ sembolü bir sıranın kulağı anlamına gelir.

Sağdaki eklemelerin güvenliğine ulaşırsanız, hemen hemen daha fazlasını yapmak önemlidir. işletim sistemi, korumalı komut dosyalarının yazılması. Bu makalede, programınızın güvenliğini ve programınızın güvenliğini nasıl sağlayacağınızı ve daha az rahatsız edici olduğunu biliyorsunuz. Aşağıda, programınızı her türlü saldırıdan korumanıza yardımcı olacak girişlerin bir listesi bulunmaktadır:

  1. Giriş verilerinin doğrulanması
  2. Zakhist vіd XSS saldırıları
  3. CSRF saldırılarına karşı savunma
  4. SQL enjeksiyonlarının önemi
  5. Dosya sistemi korsanı
  6. Bu oturumun davalısı
  7. af işleniyor
  8. Bağlanan dosyaları koruyun

Giriş verilerinin doğrulanması

Program tasarlama saatinin altında, yogayı "kötü" girdi verilerinden koruma alıştırması yapmanız gerekir. Kural, uyulması gerektiği gibi, kulağa şöyle gelmelidir: “Koristuvach olana yalan söyleme”. Koristuvachivlerin çoğunu tehdit etmeyenlerden bağımsız olarak, sitenizi hacklemek isteyenlerin, form veya adres satırı aracılığıyla girilen vikoristovuyuchi "kötü" verilerden emin olun. Giriş verilerini sürekli kontrol edip filtrelerseniz, güvenli bir program yazma şansınız çok yüksektir.

Verilerinizi her zaman PHP komut dosyalarında kontrol edin. Pekala, veri doğrulama için JavaScript'i kazanırsanız, o zaman bir hafifletici olsun, tarayıcınızda açabilirsiniz. Şu anda, ekiniz güvenli değil. JavaScript doğrulaması kimsenin umurunda değil, ancak iyi bir kahkaha için PHP betiklerindeki verileri iki kez kontrol etmeniz gerekir.

XSS saldırılarına karşı savunma

Siteler arası komut dosyası çalıştırma veya XSS saldırısı, kodun potansiyel olarak farklı taraflarda kullanılmasına dayanan bir saldırıdır. Sorun, özensiz kodun formlar aracılığıyla girilebilmesi ve ardından tarayıcıda görüntülenebilmesidir.

Diyelim ki sitenizde, eklediğinizde görüntülenecek olan yorum girmek için bir form var. Saldırgan neyin intikam alacağına dair bir yorum girebilir JavaScript kodu. Formun yönetilmesinden sonra veriler sunucuya gönderilir ve veritabanına girilir. Bu veriler tabandan değiştirilirse ve yeni yorum şurada görüntülenir: HTML tarafı, JavaScript kodu dahil. Koristuvach'ı yanlış tarafınıza veya bir kimlik avı sitesine yönlendirebilirsiniz.

Programlarınızı korumak için, tüm gerçek etiketleri görmek için giriş verilerini strip_tags() işlevi aracılığıyla çalıştırın. Tarayıcıda verileri görüntülerken, htmlentities() işlevini durdurun.

CSRF saldırılarına karşı savunma

Dünya tarafından görülebilen saldırgan bir saldırı türü, bir CSRF saldırısı veya siteler arası bir istektir. Gizli bilgilerin kaldırılması veya mağdurun bilgisi olmadan hakkın tanıtılması için muzaffer hilelere saldırmak. Kirli çalıntı sitelerde daha iyi çalışır, iş mantığı GET isteklerinde çalışır.

Vzagali, GET istekleri yetersizdir. İdempotans, bu bağlamda, herhangi bir üçüncü taraf katılımı olmadan uzun bir süre bir veya diğer tarafa erişimin yapılabileceği anlamına gelir. GET'in kendisi yalnızca bilgiye erişimin engellenmesi nedeniyle ücretlendirilmelidir, ancak aynı zamanda farklı işlemler için değil.

Aşağıdaki basit örnek, ele geçirme olmayan bir sitenin CSRF saldırılarını nasıl algılayabileceğini gösterir:

Diyelim ki Bob, Alice'e CSRF saldırısı yapmak istiyor. Özel bir url adresi oluşturup e-posta ile Alicia'ya gönderdikten sonra:

Siteme bakın!

Alice, example.com web sitesinde yetkilendirilmişse ve bu talimatları izlerseniz, Bob'un hesabına 1000$ aktarılacaktır. Alternatif olarak, Bob görüntüyü düzenleyebilir ve src özniteliğine "kötü" adresi ekleyebilir.

Tarayıcı görüntüyü görüntüleyemiyor, yoga parçaları mevcut değil, yazılım Alice'in o kısmının bilgisi olmadan oluşturulacak.

Benzer saldırılardan kaçınmak için, veritabanındaki bilgileri değiştirmek için kullanılan işlemlerden önce yalnızca POST isteklerini yenin. $_REQUEST etiketlemeyin. GET parametrelerini ayrıştırmak için $_GET ve POST parametrelerini ayrıştırmak için $_POST kullanın.

Ek olarak, benzersiz bir benzersiz belirteç oluşturabilir ve bunu POST dış görünüm isteğine ekleyebilirsiniz. Bir koristuvach sisteme girdiğinde, bir şifre jetonu oluşturup oturuma yazabilirsiniz. Tüm formların parçaları kutuda görüntülenir, tüm belirtecin ekteki alana yazılması gerekir. Programın iş mantığı, formlardan geri döndürülebilir bir belirteç olan ve oturuma kaydedilen bir belirteç olan işlevselliği aktarmaktan sorumludur.

SQL enjeksiyonlarının önemi

Verileri veri tabanına kazanmak için PDO kazanmasını takip edin. Parametreli sorgular ve hazırlanmış virüsazlar ile SQL enjeksiyonlarını tehdit edebilirsiniz.

Bir sonraki popoya bir göz atalım:

Yukarıda sunulan kod için, prepar() yöntemini adlandırılmış parametreleri dahil etmeye zorlayabiliriz: :name ve:age . Bu sıralamada, daha fazla veri ikamesi için ön derleme isteyin. execute() yöntemini tıkladığınızda, istek yeniden oluşturulacak ve kazanılacaktır. Bu tür bir teknik kullanırsanız, SQL enjeksiyon saldırganının tüm testleri sıfıra indirilecektir.

Dosya sistemi korsanı

Güvenilir bir satıcı olarak, dosya sisteminizi tehdit etmeyen bu tür kodları yazmaktan siz sorumlusunuz. Muhabir tarafından aktarılan nadas verilerindeki atlamanın dosyası olan koda bir göz atalım.

Bu komut dosyası güvenli değildir, bu nedenle, komut dosyasının bulunduğu dosyadan erişilebilen herhangi bir dizine erişebilirsiniz: oturumları, sistem klasörlerini ve çok daha fazlasını içeren dizine.

Bu oturumun davalısı

Kilitleme için tüm oturum bilgileri geçici dizine kaydedilir. Eğer bir sanal barındırma sağlayıcısıysanız, lütfen bir komut dosyası yazıp oturum verilerinizi inceleyebilirsiniz. Bu nedenle, oturumlar için şifreleri veya kredi kartı numaralarını kaydetmeye dikkat edin.

Yine de benzer verileri oturumda kaydetmeniz gerekiyorsa, en iyi yaklaşım şifreleme olacaktır. Bu, sorunu tamamen çözmez, çünkü şifrelenmiş veriler %100 güvenli değildir, ancak toplanan bilgiler okunamaz olacaktır. Bu yüzden bu oturumları başka bir yere, örneğin bir veri tabanına kaydedebileceklerinizi düşünmelisiniz. PHP, oturum verilerini kendi yönteminizle kaydetmenize izin veren özel bir session_set_save_handler() yöntemine sahiptir.

PHP 5.4 ile başlayarak, SessionHandlerInterface türünde bir nesneyi session_set_save_handler() öğesine iletebilirsiniz.

af işleniyor

Rozrobki programları saatinin altında, kazanabilecekleri için her türlü af için saygı gösterirler, ancak kіntse koristuvachіv їkh durumunda onları almak gerekir. Koristuvachas'a af verilmiş gibi, sitenizi rahatsız edeceğiz. Böyle bir sıralamada en iyi çözümler, son sunucu ve dağıtım sunucusu için yapılandırma olacaktır.

Genel sunucuda, coristuvachiv'den alınan tüm afların günlüklere kaydedilmesi için display_errors ve display_start_up_errors gibi seçeneklerin yanı sıra error_reporting ve log_errors gibi seçenekleri etkinleştirmeniz gerekir.

Ayrıca kendi af işleyicinizi belirlemek için “set_error_handler” ayarını da yapabilirsiniz. Ancak, yazarın işi yerel PHP mekanizması tarafından yapılsa bile, değiş tokuşta bir hata olabilir. E_CORE_ERROR , E_STRICT veya E_COMPILER_ERROR affı, özet ile aynı dosyada ayarlanamaz. Ayrıca, obrobnik'in kendisine yüklenebilecek aflar teyit edilemez.

Suçlamanın daha zarif bir yolu için, bir try/catch bloğuna potansiyel olarak güvenli olmayan kod yerleştirilmelidir. Usі vlasnі vinyatki mayut ama sınıfın veya alt sınıfların İstisna nesneleri. Suç atılmış olsa bile, dene/yakala blokları kırılabilir.

Bağlanan dosyaları koruyun

Genellikle PHP betiklerinde, tabana ve diğer dosyalara bağlanma gibi başka dosyaların eklenmesine ihtiyaç vardır. Deyakі rozrobnik proponuyut bu tür dosyalar extension.inc. PHP promosyonları için bu tür dosyaları ayrıştırmayın. Herhangi bir aracı olmadan adrese giderseniz metin dosyasını dosyaya gönderebilirsiniz. Bir bilgisayar korsanının veri alan, veritabanına bağlanan bir dosyaya erişmesine izin verilirse, programınızın tüm verilerine erişebilirsiniz. Bu nedenle, tercih edilen dosyalar için .php uzantısını değiştirdiğinizden ve doğrudan erişimi olmayan bir yere kaydettiğinizden emin olun.

pod çantası

8 kuralı diriltmeye çalışırsanız, anlamlı dünya tarafından zastosuvannya'nızın çeşitli saldırılara karşı direncini güçlendirmenize izin verilecektir. Bozucuların girdiği verilere güvenmeyin, dosyalarınızı ve veritabanınızı çalın.

"Bankaların web siteleri kuruşlar uğruna, Pentagon - casusluk uğruna ve projeme kimsenin ihtiyacı yok" - ne yazık ki, özel bloglarda, İnternet kartvizitlerinde otoritelerin çoğuna saygı duyuyorum. , küçük şirketlerin sanal temsilcileri. Bunlar hakkında, siteyi nasıl ele geçirecekleri, yalnız değiller, ama darma. Günümüz gerçeklerinde, popülerliğin türü ne olursa olsun, hackerların gözünde tsikavy kesinlikle bir tür Maidanchik var. Kaynağınıza başka kim ihtiyaç duyabilir? Çözelim:
1. Vitivki scripts. Jargon, "karanlık taraftaki" ilk birkaç kişiyi utandırmak isteyen hacker-pochatkivtsiv anlamına gelir. Çok sayıda araç edindikten veya birkaç iyi program yazdıktan sonra, denediğiniz ilk kurban üzerindeki uygulamayı yanlış okumak ve kural olarak en kolayını (zayıf korumalı ve güncellenmemiş) seçmek zaman kaybıdır. CMS) numaraları.
2. Siyah SEO. Dürüst olmayan optimize edicilerin hizmetkarları hala kullanımda - daha önce olduğu gibi 10'un üzerinde TIC olabilecek proje kodlarına ekli mesajların yerleştirilmesi alıştırması. І Öncelikle darbe altında kaynaklar açık kaynak kodlu motorlarda (Joomla, Drupal, OpenCart vb.) tüketiliyor.
3. Pobudova bot-no. DDoS saldırıları sırasında kullanılan ve spam'i gayet iyi yayan zombiler oluşturmak için kesinlikle herhangi bir kaynağın kullanılabileceği gerçeğiyle ilgili htaccess eklentileri için WordPress'i savunun.
4. Yoldaş yayıklığı. Nareshti, saldırı siz olmayabilirsiniz - barındırma ana yöntem olacaktır ve site, sağlayıcının BT altyapısında büyük bir fark olarak daha az hizmet edecektir. Zrozumіlo, yogo paylaşımı bilgisayar korsanlarına baiduzha olacak.

Kötülüğün sonuçları en kabul edilemez olabilir: içerik veya bir bütün olarak kaynak kaybı, şok sistemleri türlerinin karamsarlaştırılması, izleyicinin “Site güvenliği tarafından engellenebilir. bilgisayar veya mobil eklenti”, web kaynağınızın temeli yasalara aykırı değildi.

Ayrıca, güncel olduğunuzdan emin olmanız da mümkündür - beslenme güvenliği tamamen bir cilt web yöneticisidir. І onlara nekhtuvat yakshto, tüm zusillya z poshkovogo prosuvannya (ve tse - pennies ve pahalı saat) bir vіdrazu içecek külü inşa ediyor. Sorun zaten alakalı, bu yüzden tehditlere ve bunlarla mücadele yöntemlerine ayrılmış bir dizi makale yazdım. Üç sürüm, popüler CMS sistemine bakacak - WordPress.

WordPress sitesi nasıl barındırılır

Kötülüğün en ilkel yöntemlerinden biri kaba kuvvettir. Kelimenin tam anlamıyla, terim "kaba kuvvet" olarak çevrilir ve olası seçeneklerin kapsamlı bir şekilde sıralanması yoluyla bahis oturum açma/şifresinin geri çekilmesi anlamına gelir. Çoğu zaman, kaba kuvvetçiler, motorun ve sunucunun ince ayarlarını karıştırarak hayatlarını kolaylaştırmaya yardımcı olur - örneğin, onları kısa sayıda kombinasyon olan bir bulut kaydı olarak tanımalarına yardımcı olur. Bu tuhaflıkların benimsenmesi ve yetkisiz erişim örnekleriyle mücadele yöntemleri hakkında.

1. Benzersiz yönetici girişini işaretleyin

Kilitleme için sistem, yönetici adları için bir coristuvacha oluşturulmasını ister. Bununla birlikte, bir WordPress sitesine ev sahipliği yapmak için, bir dizi rastgele harf ve rakamdan oluşan bir giriş oluşturmak en iyisidir. Yönetici adlı bir kaynakta, iki yoldan birini kazanarak herhangi bir özel sorun olmadan değiştirebilirsiniz:

Yönetici aracılığıyla. “Koristuvachi” dağıtımına gidin, “Yeni ekle” düğmesine basın ve bir yüz kaydı oluşturun. “Rol” alanında “Yönetici”yi seçin ve işlemi onaylayın. Ardından, iyi oluşturulmuş görünümün adına gidin, “Koristuvachi” bölümüne dönün, “admin” i seçin ve “Vidality” düğmesine basın. En üstte, "Her zaman ara" konumuna bir radyo düğmesi koyun ve listeden yeni bir yönetici seçin ve ardından "Aramayı onayla"ya basın.
. Vikoristovyuchi phpMyAdmin. Bu prosedürü veritabanı kontrol panelinden yapmak daha kolaydır. Gerekli veritabanını seçin, wp_users tablosunu bulun, “admin” satırını (ID=1) bulun, “Değiştir”e tıklayın ve isim alanına girin.

2. Yayınlar için özel bir kamu kaydı oluşturun

Yakshcho, yöneticiyi "parlamayın", ek koruma sağlayın. Makalelerin yerleştirilmesi için bir okremiya oblіkovy kaydı oluşturun ve daha önce yayınlanmış tüm materyallere paragraf 1'de açıklanan şekilde bağlantı verin. Ayrıca, bilgi ekleyin ve okuyucularla yalnızca yeni oblіkovy kaydından iletişim kurun.

3. Bir katlama şifresi belirleyin

Genel olarak kabul edilen önerilerden yararlanın: şifrenin uzunluğu 10 karakterden az olmamalı, şifre benzersiz olmalı ve bir vipadkovo büyük ve büyük harfler, rakamlar ve özel işaretlerden oluşmalıdır.
Herhangi bir zamanda mümkün değildir:
. anlamlı ifadelerden bir şifre oluşturun
. vykoristovuvat be-yakі gerçek veriler (doğum tarihi, kızın adı, banka hesap numarası, geçerli tarih ...)
Sözlük için bir kod cümlesi seçme riskini kapatmak ve ayrıca kaba kuvvet için gereken saati azaltmak gerekir. Bu nedenle, yalnızca küçük harfler ve rakamlardan (hki458p1fa) oluşan 10 karakterlik kötü dizi, bir bilgisayar için bir makine saati için 10 gün sürecek ve ardından büyük harfler ve ek işaretler (Nv6$3PZ~w1) ekleyecektir. bu süre 526 yıla kadar uzar ve pratik olarak mutlak bir zakhist WordPress'i garanti eder. Özellikle birçok projeyle meşgulseniz, benzer şifreleri hatırlamak ve hatırlamak kolaydır. Bu nedenle, bu nesil için özel yöneticiler kullanmak daha iyidir, örneğin - her yerde ücretsiz olarak açılabilen KeePassX veya harika bir test belgesi (kısacası, bir şifre ile arşivlere paketlenecektir).

4. Veri tabanının şifresini değiştirin

Kuralın yeniden icat edilmesi daha adil ve MySQL'e erişim kodunun güvenliği için. Aje, oradaki tüm içeriği ve yöneticiye verilen gizli ifadenin karmasını bulacaktır. Zaten zayıf bir şifre kazandığınız için, hatırlayanlar hakkında siğil yapın. Böyle savaşın:

1. phpMyAdmin şifre paneline gidin
2. “Koristuvachі” sekmesine gidin ve veri tabanının katibini seçin.
3. “Ayrıcalık Düzenleme”ye tıklayın
4. "Şifreyi değiştir" sütununu bulun ve belirtilen alana yeni bir gizli dizi girin
5. “Tamam”a basarak değişikliklerinizi kaydedin

Artık wp-config.php düzenlemesi ortadan kalktı, aksi takdirde WordPress veri tabanına bağlanamaz. satır bul define('DB_PASSWORD', 'parola'); ve parola kelimesi yerine yeni bir parola girin. İade saygısı: SQL komutlarının yeniden şifrelenmesi için salınan işaret (') gereklidir, ayrıca gizli ifade deposunda da tekrarlanmalıdır.

5. Şifreleri düzenli olarak güncelleyin

Їх varto minyati, bir pіvroku için bir kez al. Pozachergova kod cümlelerinin değişmesi, aşağıdakilerden sonra obov'yazykovo zdіysnyuvatisya'dan kaynaklanmaktadır:

Kimlik doğrulama için verileri üçüncü taraflara aktarmak (programcılar, sistem yöneticileri, optimize ediciler ve diğer fahivtsy, barındırma şirketinin personelinde kokuşmuş gibi)
. başka birinin bilgisayarından bir web kaynağına erişme (bir partide, bir internet kafede)
. güvenliği ihlal edilmiş olabilecek yetkilendirme (makineye virüs bulaşmış)

6. Çerezler için gizli anahtarları hatırlamayı unutmayın

Koku, wp-config.php dosyasının yanında bulunur. Usyogo їх 8:

define("AUTH_KEY", "benzersiz anahtar"); define("SECURE_AUTH_KEY", "benzersiz anahtar"); define("LOGGED_IN_KEY", "benzersiz anahtar"); define("NONCE_KEY", "benzersiz anahtar"); define("AUTH_SALT", "benzersiz anahtar"); define("SECURE_AUTH_SALT", "benzersiz anahtar"); define("LOGGED_IN_SALT", "benzersiz anahtar"); define("NONCE_SALT", "tek anahtar");

define("AUTH_KEY", "benzersiz anahtar"); define("SECURE_AUTH_KEY", "benzersiz anahtar"); define("LOGGED_IN_KEY", "benzersiz anahtar"); define("NONCE_KEY", "benzersiz anahtar"); define("AUTH_SALT", "benzersiz anahtar"); define("SECURE_AUTH_SALT", "benzersiz anahtar"); define("LOGGED_IN_SALT", "benzersiz anahtar"); define("NONCE_SALT", "tek anahtar");

İsimlerin isimlerini tahmin etmeniz önemli değil, anahtarlar çerez dosyalarını şifrelemek için verilmiştir (argoyu kullanıyoruz: çerez - fırın, tuz - güçlü, tuzlu sobalarda korsanlar yapabiliriz), örneğin vikoristovuyutsya gibi. yetkilendirmeden sonra bilgisayarınızı unutmuş olan siteyi hatırlayın. Sonuç olarak, saldırgan, yöneticinin şifresinin karmasını emrinden alır, siteye erişmek için gerekli olan çerezleri, gizli ifadeleri yeniden bağlamadan oluşturmak mümkün değildir.

Güvenliği artırmak için, CMS konuşulduktan sonra yazım için karakter dizisi benzersiz bir dizeyle değiştirilmelidir. Kolaylık sağlamak için, perakendeciler www.api.wordpress.org/secret-key/1.1/salt/ adresinde yayılan bir web oluşturucu oluşturdular - girdiğinizde, anahtarlara sahip olacaksınız ve tarafı değiştirirseniz, o zaman kombinasyonlar güncellenecektir.

7. Yönetici paneli için imza yetkilendirmesi

Htaccess, aynı sunucuya kimlik doğrulama ekleyerek WordPress sitesini ele geçirmenize izin verir. Kod şöyle görünecek:

< Files wp- login. php> # Temel kimlik doğrulama türünü ayarlayın - bu, denerken# Belirtilen dizine veya dosyaya göz atıldığında bir şifre istenecektir: AuthType temel # Form başlığında görüntülenecek metni girin: AuthName "Kendinizi tanımlayın" # Parolayı almak için dosyaya bir yol bulalım: AuthUserFile "/home/site/.htpasswd" # wp-login.php dosyasına girerken bir şifre girmeniz gerektiğini lütfen unutmayın: Geçerli kullanıcı gerektir # .htpasswd dosyasına erişimi üçüncü kişilerle sınırlandırıyoruz:< Files . htpasswd>izin ver, reddet hepsini reddet

# Yetkilendirme komut dosyasını seçin: # Temel kimlik doğrulama türünü ayarlayın - bu, denenirken ne anlama gelir # Belirtilen dizine gidin veya bir parola ile sağlanacak dosya: AuthType basic # Formun başlığında görüntülenmesi gereken metni girin: AuthName "Kendinizi tanımlayın" : AuthUserFile "/home/website/.htpasswd" # wp-login.php dosyasına erişirken bir parola gerektiğini belirtin: Geçerli kullanıcı gerektir# .htpasswd dosyasına erişimi üçüncü kişilerle sınırlandırıyoruz: izin ver, reddet hepsini reddet

Aynı zamanda, htaccess'in kendisinin güvenliği hakkında konuşmak kötü olur. Görünüşte, böyle bir yönerge barındırma için ana ayarlarda açıklanabilir, bazı sağlayıcıların ale vrakhovuchi dikkatsizliği, varto güvenli oynamak:

“Giriş” ikamesi, adın bazhanesi ile temsil edilir. Açık kaynaktan benzer verileri kaydetse bile şifreyi kendisi oluşturmak ve şifrelemek mümkün değildi - rozkish'e izin verilmiyor. Bu nedenle, anonim hizmetleri kullanmanız veya daha iyisi, ihtiyacınız olan komut dosyasını kendi başınıza yazmanız gerekir. Böyle savaşın:

1) extensions.php'den bir not defteri dosyası oluşturun, örneğin, crypt.php
2) Şifre yerine "Şifre" kelimesini kullanarak kodu buraya girin:

3) Dosyayı kaydedin ve kök dizine kaydedin
4) site_name.ru/crypt.php isteğine gidin - ekranda şifre karması görünecektir
5) .htpasswd dosyasının değerini kaydedin ve kök dizine ekleyin ve crypt.php dosyasını silin.

Son dokunuş, web kaynağının dizini yerine çiti gözden geçirmektir. htaccess'te tek bir satır eklemek yeterlidir:

Seçenekler Tümü - Dizinler

Seçenekler Tüm Dizinler

Bilgisayar korsanlarının dosyaların projenin dizinlerinde olup olmadığını bulamaması için savaşmanız gerekir. Zengin barındırmalarda, yönerge sunucunun yapılandırmasına zaten dahil edilmiştir, ancak aynı zamanda hesaba müdahale sırasında sipariş bağımsız olarak yazılmalıdır.

8. Captcha'yı yükleyin

Wikoristanya captcha, kaba kuvvet botlarının hepsini olmasa da kabul edip etmediğini görmenize izin verir, ancak aynı zamanda. Bir WordPress sitesini barındırmak için eklentiler kataloğu birçok seçenek sunar. Google gibi büyük ilgi gören Krym podklyuchennya kurumsal çözümü, matematiksel mantığa dayanan BestWebSoft karma (grafik ve metin) türü Captcha'dır. Nezalezhn, en iyi modüllerden birini soymak için slozhnostі priyatny olarak hizmet vermektedir.

Nalashtuvannya özel bir sorun değil. “Temel” sekmesi, captcha'yı nerede görüntülemeniz gerektiğini seçmenize ve alanları tanımlamak için başlık ve sembol, doldurmadan önce başlıklar belirlemenize olanak tanır.

"Genişletme" dağıtım bölümü, botların hayatını kolaylaştırmak için ek görüntü paketlerinin etkinleştirilmesinin yanı sıra aflar hakkında resmi duyurular oluşturma imkanı sağlar.

Başka bir olasılık, captcha'ların görüntülenmediği daha büyük bir IP adresleri listesi oluşturmaktır.

Eklentinin yüklenmesi ve etkinleştirilmesinin sonucu, yetkilendirme tarafında formun görünümü olacaktır:

9. Yönetici adresini değiştir

Bunlar hakkında Rozpovіdayuchi, WordPress'te bir sitenin nasıl ele geçirileceği, radikal, ale ve katlanabilir bir şekilde varto varto - eşit komut dosyalarında yetkilendirme tarafının URL'sini değiştirin. Prosedürü birkaç adım takip eder:

1. wp-login.php dosyasını yeniden adlandırın. Küçük Latin harfleri, sayıları ve tirelerden oluşan vipadkovy dizisini fethedin. Örneğin: abc-123.php
2. Dosyadaki tüm wp-login.php bilmecelerini bulun ve bunları yeni bir adla değiştirin.
3. Sitenin doğru çalışması için aşağıdakileri değiştirmek gerekir: wp-activate.php, general-template.php, post-template.php, function.php, class-wp-customize-manager.php, general-template.php, link-template.php, admin-bar.php, post.php, pluggable.php, ms-functions.php, canonical.php, functions.wp-scripts.php, wp-signup.php, sitelerim.php, schema.php, ru_RU.po

Bu manipülasyonlardan sonra, adres sitesi / abc-123.php için yönetici roztashovuvatimetsya. Yeni dosyaya erişim, atandığı şekilde bir parola ile korunmalı ve korunmalıdır. Ayrıca, sahte bir wp-login.php dosyası oluşturarak ve yenisi için bir şifre belirleyerek potansiyel bilgisayar korsanlarını Umman'a tanıtabilirsiniz.

Daha basit bir seçenek de "wp-login.php'yi yeniden adlandır" eklentisini kullanmaktır. Eklenti yüklendikten sonra siteyi barındırmak için "Kurulum" -> "Kalıcı ilan" menüsünde yeni bir alan görünecektir:

10. Yönetici IP'sini girin

Statik bir IP adresiniz olduğundan, Dodatkovu güvenliği vipadku'da güvence altına alınabilir. Diğer bilgisayarınızdan wp-login.php'ye erişimi engelledikten sonra, kahretsin ve saldırganların hayatını kolaylaştırın:

< Files wp- login. php>sipariş reddet, reddet hepsinden izin ver 127.0.0.1, 127.0.02'den izin ver #IP adreslerinizi kimin aracılığıyla belirtebilirsiniz

sipariş reddet, reddet hepsinden izin ver 127.0.0.1, 127.0.02'den izin ver #IP adreslerini kimin aracılığıyla belirtebilirsin

11. Yetkilendirme aflarını kaldırın

Parolaları sıralarken, saldırgan, girilen verilerin yanlış olduğu ortaya çıkanlar hakkında bilgiye ihtiyaç duyar. Bu uyarı, oturum açmaya çalıştığınızda görüntülenir ve WordPress ayrıca, yanlış giriş, giriş veya şifre girdiyseniz sizi uyarır. Doğru yapmak için, function.php'ye yalnızca bir satır eklemek yeterlidir:

add_filter("login_errors", create_function ("$a", "boş dönüş;");

add_filter("login_errors",create_function("$a", "boş dönüş;");

Bunun için yönetici "Güneşli görünüm" -> "Editör" -> "Tema işlevleri"ni seçin. Etiketten sonra gerekli kodu girin

12. Vykoristovyte z'ednannya.

Bilgisayar ve web sunucusu arasındaki trafiği şifrelemek için, bizim durumumuzda önemli verileri boğmayı imkansız kılan https protokolünü kullanır - tanımlama. Bunu etkinleştirmek için, iki işleve hizmet edecek bir SSL sertifikası almanız gerekecek: web kaynağını korumak ve iletilen bilgileri şifrelemek. Yogayı özel merkezlerde veya birkaç alan adı kayıt şirketinde deneyebilirsiniz. Ticari olmayan amaçlar için, ücretsiz bir kulaktan kulağa sertifika yeterlidir (www.startssl.com şirketi tarafından tanıtıldığı gibi). Kurulum işleminden önce, hoster'ın ön dağıtımından rapor açıklamalarının VIN'ini arayın.

SSL sertifikasını kaldırdıktan sonra, web kaynağının yönetim bölümünü korunan siteye yönlendirmek gerekir. WordPress'in ucunda, ek bir saldırgan yapı denemeye değer:

< IfModule mod_rewrite. c>Seçenekler + FollowSymlinks RewriteEngine Açık RewriteCond % (HTTPS) = kapalı RewriteCond % (REQUEST_URI) =/ wp-login. php RewriteRule(.*) https:

Seçenekler +FollowSymlinks RewriteEngine On RewriteCond %(HTTPS) =off RewriteCond %(REQUEST_URI) =/wp-login.php RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

Yalnızca aynı motorda SSL sertifikalarının alınmasını zorlamak da mümkündür. Hangisi için wp-config.php dosyasını açın ve aşağıdakini ekleyin

define("FORCE_SSL_ADMIN", true);

define("FORCE_SSL_ADMIN", true);

Cehennem, http'den https'ye global bir yönlendirme ayarlayabilirsiniz. Yeni siteler için, böyle bir pidhid, Google'ın projeleri korumak istediği ve arama motorları için ilk önceliği verenler açısından en uygunudur:

< IfModule mod_rewrite. c>Seçenekler + FollowSymlinks RewriteEngine on RewriteCond % (HTTPS) = off RewriteRule ^(.* ) $ https: //%(HTTP_HOST)%(REQUEST_URI)

Seçenekler +FollowSymlinks RewriteCond'da RewriteEngine %(HTTPS) =off RewriteRule ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

13. Davetsiz misafirleri engelle

İlk IP'lerden şüpheli etkinlik algılanırsa siteye erişimi engelleyin. Analoji için önceki şekilde savaşın. Aradaki fark, direktiflerin bir bütün olarak proje için öngörülmesi ve yasaklamak istediğimiz kişilerin adreslerini yeniden yönlendirmemizdir:

İzin Ver, Reddet Tümünden İzin Ver 127.0.0.1, 127.0.02'den Reddet

Yöntem üstündür, protein verimlidir. İlk etapta, sanki rütbe olarak, kaba kuvvetler ve iyi huylu olanlar durumunda bunların su takviyesini düzeltmek gerekir. Başka bir şekilde, toplu bir saldırı ile, bilgisayar korsanlarının ve botların IP'sini manuel olarak giremezsiniz. Bu yol, yalnızca yöneticinin güvenilir bir "kara liste" adresine sahip olması durumunda iyidir.

Başka şekillerde, eklentiyi WP Cerber adlı bir WordPress sitesini barındırmak için kullanabilirsiniz. Bu çözüm, şeytani CMS'yi korumaya çağıran çok önemli bir araç setinin yardımıyla kesinlikle ücretsizdir. Yogayı doğrudan yönetici panelinden yükleyebilirsiniz.

Zamovchuvannyam proponuyutsya dosit tyamuschi parametreleri için. Wtim, varto'nun örnek sayısı 5'e çıkarılmış, anlamazsınız.

Aksine, yönetici adresini daha önce açıklandığı şekilde değiştirebilmeniz için “wp-login.php isteği için IP'yi engelle” kutusunu işaretleyin.

WP Cerber elektrikli aletini kimler için kullanabilirsiniz:

“Citadel” sitesini barındırmak için eklenti modu da ek ayarlar gerektirmez. Büyük bir kaba kuvvet saldırısı için projenin "korunması" için Vin atamaları. "Bir dosya girmeyi dene" seçeneğinin yanındaki onay işareti, onu kaldırmak daha iyidir - bu, sunucuya olan eki kapatmanıza yardımcı olur.

“Erişim Listeleri” sekmesi, “siyah” ve “beyaz” bir IP listesi oluşturmak için kullanılır (statik adresleriniz varsa, bunları güvenilirler listesine eklemelisiniz) ve “Araçlar” bölümü yönetmenizi sağlar. önceden girilen ayarların içe ve dışa aktarılması. Vtіm, bu olasılık net bir görünüm gerektirmez.

14. Yapılandırma dosyasını taşıyın

Bildiğimiz gibi, wp-config.php, MySQL'e erişim için kullanıcı adı ve şifrenin yanı sıra API anahtarları gibi kritik öneme sahip verileri kaydeder. Bir sonraki adım oldukça açık - Dosyaya ek erişim için htaccess üzerinden WordPress ele geçirme:

< Files wp- config. php>İzin ver, reddet Tümünden reddet

İzin ver, reddet Tümünden reddet

Doğal olmayan yöntemi protesto edin. WordPress biraz özel olabilir, ancak çok az kişi bunu biliyor. Motor, bir yapılandırma dosyasının kök dizinden bir fiyat yüksek olmasına izin verir..php site dizinine taşınabilir. Bu durumda, dosya İnternet üzerinden erişilemez hale gelir ve bu durumda CMS bilgileri yenisinde okuyacaktır.

15. BİR YÖNLENDİRİCİ ekleyin

WordPress'e spam'den saldırırken kendini kanıtlamış olan yöntem, kaba kuvvetlere yardımcı olacak ve bazen onlara direnecek. Aje şifreleri çözüyor - manuel bir robot bile değil: bunun için özel programlar var. Bu da, giriş isteklerinde üstbilgilerin yeniden kontrol edilmesini açarak, botları boş bir HTTP REFERER ile görüntüleyebileceğiniz anlamına gelir:

< IfModule mod_rewrite. c>RewriteEngine On RewriteCond % ( REQUEST_METHOD) POST RewriteCond % ( REQUEST_URI) . (wp-yorum-post|wp-login) \. php* RewriteCond % ( HTTP_REFERER) !.* tekseo. su.* [ VEYA] RewriteCond % ( HTTP_USER_AGENT) ^$ RewriteRule (.* ) http: //%(REMOTE_ADDR)/$1

RewriteCond'da RewriteEngine %(REQUEST_METHOD) POST RewriteCond %(REQUEST_URI) .(wp-comments-post|wp-login)\.php* RewriteCond %(HTTP_REFERER) !.*site.* RewriteCond %(HTTP_US *) http:// %(REMOTE_ADDR)/$1

16. XML-RPC'yi Şifrele

3.5 sürümünden başlayarak, WordPress, uzaktan çağrı protokolü XML-RPC prosedürlerini etkinleştirme yeteneğini tanıttı. Temel olarak, mobil programlarla etkileşim için şaraba ihtiyaç vardır, proteo benzeri işlevsellik cilt için gerekli olmaktan çok uzaktır. Ancak xmlrpc.php, tüm projenin Aşil topuğu olan DDoS saldırıları için aktif olarak kullanılır.

Ek olarak, bilgisayar korsanları kaba kuvvet için XML-RPC ile geldi. wp.getUsersBlogs yöntemini kullanmak, genel verileri yönetici formu aracılığıyla daha zengin bir şekilde sıralamanıza olanak tanır. Birçok XML-RPC kısayolu, yetkilendirmeyi etkiler ve şu formu sorar:

< methodCall> < methodName>wp. getUsersBlog'lar < params>< param>< value>< string>yönetici < param>< value>< string> 12345

wp.getKullanıcılarBloglar yönetici 12345

dvigun povodomit, chi transfer kombinasyonunun є doğru olduğu gerçeğine değer verdi. Bu talihsizliği önlemek için protokolü yeniden etkinleştirmek gerekir. Zrobiti tse kіlkom yolları olabilir:

1) xmlrpc.php dosyasına htaccess aracılığıyla erişimin engellenmesi

require_once(ABSPATH. "wp-settings.php");

yazmak gerekli

function remove_x_pingback($headers) ( unset($headers["X-Pingback"]); return $headers; ) add_filter("wp_headers", "remove_x_pingback");

4) "Ayar" -> "Yazma" seçeneğini açtığınız Wicorous eklentisi Control XML-RPC yayıncılığı:

Saygıyı iade edin: aktivasyondan hemen sonra protokolü ekleyin ve ayarlarda onay kutusunu işaretleyerek açabilirsiniz.

17. Kaba Kuvvet Saldırılarını Araştırın

Nasamkinets, kötülüğe yönelik girişimleri günlüğe kaydetmek için cicavia eklentisi hakkında tahminde bulunur - Kimlik doğrulama ve xmlrpc günlük yazıcısı. Aynı WP Cerber'in izleyebilmesini istiyorsanız, bu modül özellikle yukarıda açıklanan protokolün yeteneğine ihtiyaç duyanlar için yine de uygun olacaktır. AX LogWriter, xmlrpc.php aracılığıyla kaba kuvvetle başa çıkabilir, böylece bu esnekliği tekrar tekrar tehdit etme riskini değerlendirebilirsiniz. Nareshti, projesinin güvenliğine dikkat etmeyen Tim, site barındırma eklentisi için elden geçirilmiş girişlerin önemi konusunda gözleri eziyor.

AX LogWriter wiki daraltılamaz. Yönetici menüsü yüklendikten sonra, gerekli tüm değişiklikleri yapabilmeniz için son dal görünecektir:

“Hata Türü” alanında kaydetme yöntemini seçin. Sistem günlüğüne, Apache sunucu sunucusuna yazmayı ve ayrıca özel bir dosya oluşturma özelliğini destekler. Durumun geri kalanında, yenisinin adını (Özel Hata Günlüğü Adı) ve dizini (Özel Hata Günlüğü Yolu) değiştirebilirsiniz. Bu, sistem yöneticisi için çok çeşitli olanaklar sunar - örneğin, çözüm fail2ban'dan bir kerede kazanılabilir. Ayrıca, Saat Dilimi sütununda doğru saat dilimini seçmeyi unutmayın.

Özel günlük, Özel Günlük Görüntüleyici'nin yan tarafındaki yönetici panelinden doğrudan görüntülenebilir:

Önerildi:

Kaynağınızın güvenliğini artırmaya ve uygulanan bazı kaba kuvvet botlarını, holiganları ve senaryo çocuklarını kurtarmaya yardımcı olacak yenileme yöntemleri. Prote, yukarıda açıklanan her şey buzdağının sadece görünen kısmıdır. Kötülük yapanların cephaneliğinde giderek daha karmaşık yöntemler var. Ve şimdi, bir sonraki makalede, bunlardan, kendinizi gerçek bilgisayar korsanlarından nasıl koruyacağınız, motor ve sunucu tutarsızlığındaki farklılıkları nasıl yeneceğiniz hakkında konuşacağız. yazılım. Bu materyalde olduğu gibi, en önemli hijyen kuralları, CMS'yi ayarlamanın anahtarları, kodu değiştirme yolları ve en alakalı eklentiler olarak kabul edilecektir.


Kimin hacker olduğunu düşünelim mi? Hacker, kraker değildir! İnsanlar çoğu zaman kafaları karışır ve anlar. Bir hacker tam karşımızda standart dışı fikirleri olan bir kişidir ve bu şekilde її gücü diyebilirsiniz.

Bir bilgisayar korsanına başarılı bir şekilde direnmek için kutunun dışında düşünmeyi öğrenmeniz gerekir. Görünüşe göre, bir kamayı kama ile dövüyorlar.

Bugün size php include gibi saldırılardan kendinizi korumanın inanılmaz bir yolunu anlatacağım. Git şarap, belli ki, herkesten uzak. Ve dürüstçe sizi saldırının kendisinden değil, tezahüründen korur. İlginizi çekti mi?

Şaka nasıl yapılır...

Hırsızın kendisi tutarsızlık göstermeye çalışırken, bir bakalım.

Böyle görünüyorsun. Saldırgan, tüm parametreleri ihtiyaçlarınıza göre değiştirerek bu parametrelerin etkinleştirme işlevi tarafından kullanılmasına izin verir. Aksi takdirde, basit bir şekilde dosyaları "alabilirsiniz". Ve chi'yi є razlivіst nі olarak belirlemek için, tüm sisteme bir tür dosya eklemeniz gerekir (geldi - değişkenlik є, nі - razlivіstі nemaє).

Açıkçası, bir kötülük yapan olarak, dizinlerin ve dosyaların dağılımının yapısını bilmiyoruz ve herhangi bir dosya alamıyoruz, bu yüzden yenisine giden yolu bilmiyoruz. Ale bu tür dosyaları buvayut, yakі zavzhd іsnuyut і sistemі, yakі zavzhd є okuma haklarına kadar. Linux, /etc/passwd ve Windows için C:\boot.ini diyelim. Ale vtim Windows, tıklamamız yeterli değil, bu yüzden bana passwd hakkında bir not verdiler

/etc/passwd

Günlüklerinizde aşağıdaki şekillerde daha fazla sayıda kayda eşlik ettiniz:

Eylem=../etc/passwd%00
?eylem=../../etc/passwd%00
?action=../../../etc/passwd%00
?action=../../../../etc/passwd%00
?action=../../../../../etc/passwd%00
?do=../etc/passwd%00
?do=../../etc/passwd%00
?do=../../../etc/passwd%00
?do=../../../../etc/passwd%00
?do=../../../../../etc/passwd%00
?id=../etc/passwd%00
?id=../../etc/passwd%00
?id=../../../etc/passwd%00
?id=../../../../etc/passwd%00
?id=../../../../../etc/passwd%00

Öyleyse, php include'ı öğrenmeye çalıştığınızı bilmelisiniz (peki, daha fazla dosya okumak mümkündür, ancak bir kerede bize tıklamayın). Yani, parametrelerinizden biri uygun bir sıralama tarafından işlenmemiş ve işlev tarafından kullanılmış gibi Dahil etmek(), ardından bir php betiği olarak yorumlamak yerine /etc/passwd dosyasını ekleyin ve bu nedenle etiketleri silmeyin php kodu a, aynı anda tarayıcıda vіnvіvsya. Ce b i, tutarsızlığın barizliğinin hırsızı için bir “işaret” olurdu.

Bunu neden o kadar çok yazıyorum ki, ortalığı karıştırırken obov'yazkovo dolandırıcısı (vakaların %90'ında bunu garanti ederim) dosyayı almaya çalışacak. /etc/passwd.

Kendini koru, Tanrım!

Şüphesiz, hemen şunu düşündünüz: "Vay canına, /etc/passwd için nihai WAF'ı yaymak ve paketleri filtrelemek istiyor musunuz?". Ni. Standart yöntem. Bu, harika bir insanın nasıl düşündüğünün bir örneğidir.

Biraz fantezi gösterelim. Neden passwd dosyasına biraz php kodu eklemiyoruz? Ve saldırgan içeri girer girmez php kodumuz bozulur. (Çılgınlığı umursar mısın? - sona bak)

Bu dosyayı eklemeyi düşünen tek kişinin bir hacker olduğunu bildiğimiz için, php kodumuz banit suçludur ve sistemimizin hacklenmesini önlemek için çileden çıkaran dosyayı bloke etmek ve bunun hakkında bilgi vermek gerekir. yöneticinin ikamesi.

Ancak /etc/passwd ve daha fazla sözdizimi zhorstko düzenlemelerine php kodu nasıl eklenir? Coristuvach derisinin bir "yorum" alanı vardır - coristuvach'ın açıklaması, orada istediğiniz zaman her şeyi girebilirsiniz (çifte not nedeniyle, anlıyorum). Bu nedenle, ihtiyacımız olan yorumlarla o dodaemo koristuvach'ı sisteme alıyoruz. O zaman /etc/passwd böyle bir satırın intikamını alacak

kök:x:0:0:Süper kullanıcı:/:
arka plan programı:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
sistem:*:3:3::/:
adm:*:4:4::/var/adm:/sbin/sh
güvenlik kullanıcısı:*:1001:1001::/:

Komut dosyasında, ne bağlanıyor, bunu yapmanız zaten gerekli - coristuvacha'yı yasaklayacağız, engelleyeceğiz, yöneticiye hatırlatacağız.

Sonuç olarak, sitenizi kötülüklerden koruyabilmeniz için kendi makarnamız var.

Visnovok

Bu yüzden yukarıda yazılan her şeyin delirmeye benzediğini tam olarak anlayabiliyorum. Pratikte hiçbir şeyin galip gelmeyeceğine dair harika bir zihnim var. Ale kimin için değil yazdı. Zakhiste galeride standart dışı bir yaklaşımın kıçını göstermek için yazdım.

Saygı için Dyakuёmo =)

Mobil ekler