Sākums / Mobilā OS / Kurš forums ir labāks vBulletin vai PunBB. Kurš forums ir labāks vBulletin vai PunBB Vbulletin ir slavens

Kurš forums ir labāks vBulletin vai PunBB. Kurš forums ir labāks vBulletin vai PunBB Vbulletin ir slavens

Jebkurš dzinējs prasa noteiktas darbības, lai to optimizētu labākai un ātrs darbs. Mūsu gadījumā mēs runāsim par Vbulletin 4 optimizēšanu.

Tā kā mūsu foruma dzinējs tiek pastāvīgi atjaunināts, es vairāk nerakstīšu par optimizāciju iepriekšējās versijas Vbulletin, bet es sākšu ar versiju 4.1.12. Lai gan tas ir iespējams, es pakāpeniski papildināšu šo rakstu ar optimizāciju priekš iepriekšējās versijas, jo ne visi pāriet uz jaunākiem.

Šeit es sniegšu dažus piemērus, lai padarītu jūsu Vbulletin forumu ātrāku un labāku (sākot ar visvienkāršākajām lietām un pārejot uz sarežģītākām). Lūdzu, ņemiet vērā, ka tas, kas der man, ne vienmēr derēs jums. Tāpēc jūs veicat visas izmaiņas, uzņemoties risku un risku.

Lietotāju saraksta atspējošana.

Ir vienkāršs veids, kā vienkārši atspējot funkciju AdminCP. (Iestatījumi -> Opcijas -> Lietotāju saraksta opcijas)

Tas, protams, nav globāls, un jūs varat to izlaist un nedarīt, vienkārši uzdodiet sev jautājumu: vai jums tas ir vajadzīgs? Kopš saraksta lietotāji var to kārtot, redzēt, kuram ir vairāk ziņojumu, reputāciju utt. Vai jūsu lietotāji to izmanto? Laikam nē... kad pēdējo reizi tu pats izmantoji šo sarakstu?

Man šķiet, ka šie saraksti nāk par labu tikai surogātpasta izplatītājiem, jo ​​tas ir vienkāršākais veids, kā savākt visus Vbulletin 4 foruma dalībnieku vārdus surogātpasta sūtīšanai privātās ziņās.

Turklāt vaicājums, kas nepieciešams, lai izveidotu lietotāju sarakstu, ir šausmīgs datu bāzes serveriem un var izraisīt lielu servera noslodzi.

Palielināts ātrums, apstrādājot personīgo ziņojumu sarakstu.

Ja jūs nekad neesat importējis privātas ziņas no ārējiem avotiem, izmantojot Impex vai citus līdzekļus, varat droši paļauties uz ID šķirošanu privātajām ziņām. Kārtojot pēc ID, jūsu datu bāzes serverim privātie ziņojumi nebūs jāievieto pagaidu tabulā, lai veiktu kārtošanu (padarot vaicājumu daudz ātrāku).

Lai to izdarītu, ir jāreģistrē neliels modulis ar atrašanās vietu private_messagelist_filter un jāieraksta tajā:

If ($sortfield == "pmtext.dateline") $sortfield = "pm.pmid";

Un viss, tu tikko padarīji private.php par ~20% ātrāku.


Mēs konfigurējam vairāk efektīva meklēšana jaunākās ziņas no lietotāja.

Mēs ejam uz FTP, meklējam, vai failā ir iekļauts /class_userprofile.php, un aizstājam tajā esošos datus šādi, meklējiet:

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "pavediens KĀ pavediens USING (threadid) WHERE thread.visible = 1 UN post.userid = " . $this->userinfo["lietotāja identifikators"] . " UN post.visible = 1 ORDER BY post.dateline DESC IEROBEŽOTS 20 collas);

un aizstājiet to ar šo (precīzāk PASŪTĪT PĒC):

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "pavediens KĀ pavediens USING (threadid) WHERE thread.visible = 1 UN post.userid = " . $this->userinfo["lietotāja identifikators"] . " UN post.visible = 1 ORDER BY post.postid DESC IEROBEŽOTS 20 collas);

Tas padara pieprasījumu nedaudz pareizāku, nekā tas jau ir. Tādā veidā jums nebūs jākārto pagaidu tabulā. Lietotājiem, kuriem ir vairāk nekā 1000 ziņojumu, sākotnējais pieprasījums aizņemtu apmēram 10 sekundes, mūsu gadījumā daudz mazāk. Tas galvenokārt attiecas uz Vbulletin 4 lietotāja profilu, lai parādītu jaunākās ziņas.

Tēmas rādītāja pārbaude.

Ja jūsu forumos ir noklusējuma kārtošanas secība, kas ir iestatīta bez izmaiņām, kā mēs to darījām iepriekš, pārliecinieties, vai visi jūsu indeksi ir to tabulās. Bija gadījumi, kad indeksi pārklājās man nezināmu iemeslu dēļ un daži forumi neatvērās.

Es ierosinu, lai noklusējuma kārtošana būtu datuma formā (kolonna, kurā tiek izmantoti šie dati, tiek saukta par “datuma līniju”), un, lai to īstenotu, izpildīsim vaicājumu:

ALTER TABLE pavediens ADD INDEX forumid2_dp (forumid, redzams, lipīgs, datuma līnija)

Šis pieprasījums attiecas tieši uz mani, jūsu gadījumā forumid2_dp ir jābūt jūsu vārdam. Izmantojiet uz savu risku.

Esiet piesardzīgs, instalējot papildinājumus.

Tas, ka kāds izgatavo moduļus un uzlaušanu, nenozīmē, ka tie ir radīti tieši jums, strādājuši lielajos Vbulletin 4 forumos un ir bez kļūdām. Lielisks piemērs ir ziņojumi par masveida uzlaušanu, izmantojot vienu vai otru uzlaušanu.

Protams, varam pieņemt, ka izstrādātāji nevar visu ņemt vērā, un izsijāt cauri visus uzlauzumus, lai tie nekonfliktētu, bet... Pārliecinieties, ka modulis Vbulletin neizraisa lielas datu bāzes noslodzes, pārliecinieties, ka uzlauzts ir potenciāls aizsargāt pret SQL injekcija vai XSS. Diemžēl ir tūkstošiem lietojumprogrammu un modifikāciju, un vienkārši nav iespējams visu pārbaudīt. Būs labāk, ja visus hackus uzrakstīsi pats, vai pasūtīsi no kāda cita. Īpaši pielāgots jums un jūsu uzdevumiem.

Neizmantojiet tabulas InnoDB.

Šeit, protams, viņi var spļaut man sejā, jo šī tēma jau ir apspriesta miljons reižu, bet no savas pieredzes varu teikt, ka es 100% strādāju pie MyISAM galdiem jebkurai darbībai. Dažreiz es apstrādāju 1000 pieprasījumus sekundē.

Ja jūs jau sākat satraukties, kur vaicājumu laikā viss karājas, it īpaši jaunajā Vbulletin meklēšanā, mainiet InnoDB tabulas uz MyISAM. MyISAM ātrāk reaģē uz atsevišķiem pieprasījumiem, jo ​​jums nav jāpārvalda atsevišķu ierakstu bloķēšana. InnoDB kopumā ir ātrāks, bet tikai tāpēc, ka tas ļauj vaicājumus izpildīt vienlaikus. Ja jūsu vaicājumi jau darbojas ātri, izmantojot MyISAM, nav nepieciešams pārslēgties uz InnoDB. IMHO.

Raksta vērtējums

0%

Vērtējums

Lietotāju vērtējums: 0,35 (1 balsis)

Jūs droši vien esat daudzkārt redzējis forumus vBulletin dzinējā. Forumi kā tādi vairs nav modē, taču vBulletin joprojām ir viens no populārākajiem dzinējiem. Tās jaunākajā (piektajā) versijā tika atrastas vairākas ievainojamības, kas var krietni sabojāt administratora dzīvi. Šajā rakstā es jums pastāstīšu, kā tie tiek izmantoti.

Pirmā problēma ir nepareiza lietotāja datu filtrēšana. Par to ziņoja neatkarīgs drošības pētnieks, kurš vēlējās palikt anonīms. Ievainojamība, lai gan tai ir daži ierobežojumi, ir saņēmusi kritisku statusu, jo tā ļauj nolasīt visus failus un izpildīt patvaļīgu kodu mērķa sistēmā.

Otro ievainojamību atklāja TRUEL IT pētnieki, un tā saņēma identifikatoru CVE-2017-17672. Tas ir saistīts ar datu deserializācijas funkcijām dzinējā, un uzbrucējs to var izmantot, lai dzēstu patvaļīgus failus sistēmā.

SecuriTeam programmas Beyond Security ietvaros ir publicēti pilni ziņojumi, kuros sīki aprakstīti abi jautājumi. Ir arī PoC ekspluatācijas, lai demonstrētu ievainojamības. Iziesim tam visam cauri secībā.

Preparāti

Kā serveri izmantoju WAMP izplatīšanu.

Lasīt failus, izpildīt komandas

Tātad pirmās ievainojamības iemesls ir nepareiza loģika, apstrādājot maršruta virknes parametru, kas ļauj uzbrucējam iekļaut diskā jebkuru failu, iekļaujot un izpildot tajā esošo PHP kodu.

Mūsu ceļš sākas ar pašu svarīgāko failu - index.php, kur notiek aplikācijas pamata inicializācija.

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $maršrutēšana = $app->getRouter(); 61: $metode = $maršrutēšana->getAction(); 62: $veidne = $maršrutēšana->getTemplate(); 63: $klase = $maršrutēšana->getControllerClass();

Apskatīsim metodi vB5_Frontend_Application::init.

/includes/vb5/frontend/application.php
13: klase vB5_Frontend_Application paplašina vB5_ApplicationAbstract 14: ( 15: publiska statiskā funkcija init($configFile) 16: ( 17: parent::init($configFile); 18: 19: self::$instance = new vB5_Application(Frontend); self::$instance->router = new vB5_Frontend_Routing(21): self::$instance->router->setRoutes();

Šeit mūs interesē setRoutes metode.

47: publiskā funkcija setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["maršrutēšanas virkne"])) 55: ( 56: $path = $_GET[" maršruta virkne"];

Mainīgais $path satur userdata vērtību no maršruta virknes parametra. Tajā varat ievadīt ceļu uz foruma lapu, un tā tiks ielādēta.



Pieņemsim, ka esam nokārtojuši /test .

Pēc mainīgā piešķiršanas ir koda daļa, kas atbrīvo no slīpsvītras rindas sākumā, ja tāda ir.

/includes/vb5/frontend/routing.php
75: if (strlen($path) UN $path(0) == "/") 76: ( 77: $path = substr($path, 1); // $path = "test" 78: )
ietver\vb5\frontend\routing.php
83: if (strlen($path) > 2) 84: ( 85: $ext = strtolower(substr($path, -4)) ; 86: if (($ext == ".gif") VAI ($ext == ".png") VAI ($ext == ".jpg") VAI ($ext == ".css") 87: VAI (strtolower(substr($path, -3)) == ".js" )) 88: ( 89: galvene("HTTP/1.0 404 nav atrasts"); 90: die(""); 91: ) 92: )

Kā redzat, čeks ir diezgan dīvains. Vismaz mulsinoša ir tieši kodā ierakstītā aizliegto paplašinājumu saraksta klātbūtne. Un vispār mulsina pats fakts, ka paplašinājums tiek iegūts, nogriežot četras rakstzīmes no rindas beigām (85. rinda). Parasti, ja mēs mēģinām saņemt failu ar gif, png, jsp, css vai js paplašinājumiem, serveris atgriezīs 404 lapu un skripts tiks pārtraukts. Kad visas pārbaudes ir izturētas, metode getRoute no klases vB_Api_Route tiek izsaukta, izmantojot callApi. Tā meklē piemērotus maršrutus, pamatojoties uz lietotāja sniegto informāciju.

Turpinājums pieejams tikai biedriem

1. iespēja. Pievienojieties “vietnes” kopienai, lai lasītu visus vietnes materiālus

Dalība kopienā noteiktajā laika posmā nodrošinās piekļuvi VISIEM Hacker materiāliem, palielinās jūsu personīgo kumulatīvo atlaidi un ļaus jums uzkrāt profesionālu Xakep Score vērtējumu!

Galvenās priekšrocības:

  • Ātra un efektīva datu bāzes ietvars
  • Saskarne, kas sastāv no veidnēm
  • Jaudīga meklētājprogramma
  • Vairāku valodu atbalsts
  • Lietotāju profili
  • Jaudīgs un ērts administratora panelis
  • Neierobežots skaits sadaļu/tēmu/ziņu
  • Paziņojumi pa e-pastu
  • COPPA atbalsts

Sakarā ar to, ka ražotājs nesniedz foruma demonstrāciju, kuru var instalēt, man bija jāinstalē kreisā versija, kas lejupielādēta no kāda Vareznik. Tāpēc instrukcijas var precīzi neatbilst licencēšanas foruma instalēšanas procesam. Pēc instalēšanas vietne tika izdzēsta un netika izmantota paredzētajam mērķim.

Lai instalētu vBulletin, dodieties uz mitināšanas vadības paneli (poga ar zobratu blakus mitināšanas pasūtījumam norēķinos), tur “Failu pārvaldniekā” mēs ejam uz direktoriju “www”. Noklikšķiniet uz pogas Augšupielādēt failu pašreizējā direktorijā:

Norādiet ceļu uz failu savā datorā:

Atlasiet arhīvu ar vBulletin un izpakojiet to:

Mēs dzēšam nevajadzīgos failus un direktorijus, tostarp mūsu www domēna direktoriju, ja jums tur nav nekā vajadzīgā. Ja jūs to neievietojat vietnes saknē vai vietnes direktorijā ir kaut kas nepieciešams, www domēna direktorijs nav jādzēš:

Atlasiet direktoriju ar vBulletin instalētāju un pārdēvējiet to:

Ievadiet mūsu vietnes nosaukumu kā direktorija nosaukumu:

Atveriet mitināšanas vadības paneļa sadaļu "Datu bāzes":

Jaunas datu bāzes izveide MySQL dati, un lietotājs ar pilnām piekļuves tiesībām tai:

Lūdzu, ņemiet vērā, ka gan lietotājs, gan datu bāze automātiski saņēma prefiksu, pamatojoties uz jūsu konta nosaukumu mitināšanas serverī:

Ejam uz mājas lapa mūsu vietnē tiek parādīta šāda vBulletin kļūda:

Adreses joslā ievadām ceļu uz instalētāju, pievienojam “install/install.php”, pēc kura sākas vBulletin foruma instalēšanas programma:

VBulletin instalēšanas programma pārbauda šādu failu klātbūtni:

Nākamais solis ir pārbaudīt savienojumu ar datu bāzi, tas neiztur - jo... Foruma konfigurācijas failā ir nepareizi dati:

Mēs atgriežamies pie hostinga vadības paneļa, failu pārvaldnieka, dodamies uz direktoriju ar forumu, pēc tam uz apakšdirektoriju “ietver”. Atveriet failu "config.php":

Mēs ievadām pareizos datus no datu bāzes konfigurācijas failā, pēc tam to aizveram:

Mēs atgriežamies vietnē, pie uzstādītāja. nospiediet “F5”, šoreiz viss kārtībā, savienojums ar datu bāzi ir izveidojies kopā:

vBulletin instalēšanas programma datu bāzē izveido tabulas:

VBulletin instalētājs maina dažu tabulu veidus:

Dati tiek ievadīti datu bāzē:

Importētās valodas:

Stili tiek importēti:

Palīdzība tiek importēta:

Mēs nepieskaramies noklusējuma iestatījumiem vBulletin instalācijas programma visu noteica pareizi:

Tiek importēti noklusējuma iestatījumi:

Ievadiet vBulletin administratora informāciju:

vBulletin administrators ir veiksmīgi pievienots:

vBulletin instalēšana hostingā ir veiksmīgi pabeigta:

Ievērojot instalētāja pēdējo ieteikumu, izdzēsiet nevajadzīgos failus:

Varat doties uz vBulletin forumu, lai pārliecinātos, ka viss darbojas pareizi:

  • No:
  • Reģistrēts: 2014.07.08
  • Ziņas: 3,924
  • Patīk: 504

Tēma: Kurš forums ir labāks vBulletin vai PunBB

VBulletin (Vobla vai Bulka, kā mums patīk to saukt) ir viens no vecākajiem komerciālajiem forumu dzinējiem, kas rakstīts, izmantojot PHP un MySQL tehnoloģijas. Kopš pašas pirmās versijas izlaišanas 2000. gadā ir veikts milzīgs darbs, lai uzlabotu funkcionalitāti, kas ļāva VB iekļauties labāko programmatūras produktu sarakstā.

VBulletin licence jums izmaksās aptuveni 250 USD. Esiet drošs, tie ir pilnībā pamatoti izdevumi un noteikti atmaksāsies, ietaupot darba laiku un nervu šūnas. Lielākā daļa šīs naudas nonāk izstrādātājiem un programmētājiem, kuri vēlāk to izmantos funkcionalitātes uzlabošanai un ielāpu un papildinājumu izlaišanai (jā, visi atjauninājumi jums tiks piegādāti bez maksas visa gada garumā).

2 Atbildēt no PunBB

  • No: Maskava, Sovhoznay 3, apt. 98
  • Reģistrēts: 2014.07.08
  • Ziņas: 3,924
  • Patīk: 504

Nav jēgas uzskaitīt visas VBulletin funkcijas. Viņi ieviesa gandrīz visu, kas foruma administratoriem varētu būt nepieciešams. Podcasting, vairāku citātu atbalsts, dalījums sociālajās grupās un kopienās, reitingu sistēma (reputācija). Pamatpaketi var papildināt ar trešo pušu paplašinājumiem.

VBulletin foruma dzinējs rada nopietnu slodzi uz serveri, it īpaši, ja ir instalēti trešo pušu papildinājumi un skripti. Lai izvairītos no problēmām ar lapu ielādi nākotnē, jums būs jāatsakās no parastā mitināšanas. It īpaši, ja nākotnē prognozējat savam resursam lielāku trafiku.

3 Atbildēt no PunBB

  • No: Maskava, Sovhoznay 3, apt. 98
  • Reģistrēts: 2014.07.08
  • Ziņas: 3,924
  • Patīk: 504

Re: Kurš forums ir labāks vBulletin vai PunBB

VBulletin, pateicoties tā ārkārtējai noturībai pret uzlaušanu un surogātpastu, ieteicams izmantot lielos nopietnos projektos. Turklāt standarta iestatījumus un konfigurācijas failus var viegli mainīt savā veidā, panākot vēl lielāku efektu. Internetā ir daudz tautas amatnieku pamācību un ceļvežu, lai gan ne visiem tiem vajadzētu uzticēties.

VBulletin īsteno liela mēroga idejas vislabākajā iespējamajā veidā. Pastāvīgi atjauninājumi, augstas kvalitātes serviss, papildu paplašinājumi un uzticami drošības mehānismi - tas viss pilnībā attaisno produktam iztērēto naudu.

4 Atbildēt no PunBB

  • No: Maskava, Sovhoznay 3, apt. 98
  • Reģistrēts: 2014.07.08
  • Ziņas: 3,924
  • Patīk: 504

Re: Kurš forums ir labāks vBulletin vai PunBB

Nav jēgas uzskaitīt visas funkcijas - tas (vai papildinājumi) ievieš gandrīz visu, kas administratoram varētu būt nepieciešams, lai izveidotu forumu. Ir vairāku citātu, Podcast apraides atbalsts, lietotāju kopienas, sociālās grupas, elastīga reputācijas sistēma un daudz kas cits.

Protams, vBulletin ir liels skaits papildinājumu un lietotāju kopienu, tāpēc ar apkopi nebūs problēmu, jo īpaši tāpēc, ka ir oficiāla atbalsta komanda. vBulletin trūkums, lai arī ne pārāk liels, ir maksas papildinājumi, piemēram, lietotāju emuāriem.

Kopumā forumam nav nekādu trūkumu. To var ieteikt lieliem nopietniem projektiem tieši tā uzticamības un izturības pret visa veida uzbrukumiem dēļ. Rezultātā tas rada ievērojamu slodzi uz serveri, īpaši ar instalētiem papildinājumiem, bet nopietniem projektiem viņi parasti izmanto nopietnus serverus un nopietnus administratorus.