Które forum jest lepsze vBulletin czy PunBB. Które forum jest lepsze vBulletin czy PunBB Clumsy vbulletin
![Które forum jest lepsze vBulletin czy PunBB. Które forum jest lepsze vBulletin czy PunBB Clumsy vbulletin](https://i1.wp.com/host-food.ru/images/faq/installation/vbulletin/vbulletin.02.png)
- Z:
- Zarejestrowany: 2014.07.07
- Posty: 3,825
- Po prostu lubię PunBB:
- 5 lata, 8 miesiące, 20 dni,
- Lubi: 480
Temat: Które forum jest lepsze vBulletin czy PunBB
VBulletin (Vobla lub Bulka, jak lubimy go nazywać) to jeden z najstarszych komercyjnych silników forum napisanych przy użyciu technologii PHP i MySQL. Od czasu wydania pierwszej wersji w 2000 roku włożono ogromną ilość pracy w poprawę funkcjonalności, co pozwoliło na umieszczenie VB na liście najlepszych produktów programowych.
Licencja VBulletin będzie kosztować około 250 dolarów. Bądź spokojny, jest to w pełni uzasadniony wydatek, który z pewnością się zwróci, oszczędzając czas pracy i komórki nerwowe. Większość tych pieniędzy trafia do deweloperów i programistów, którzy później wykorzystają je do ulepszania funkcjonalności oraz wydawania poprawek i dodatków (tak, wszystkie aktualizacje będą dostarczane bezpłatnie przez cały rok).
2 Odpowiedz przez PunBB
- Z: Moskwa, Sowchoznaj 3, lok. 98
- Zarejestrowany: 2014.07.07
- Posty: 3,825
- Po prostu lubię PunBB:
- 5 lata, 8 miesiące, 20 dni,
- Lubi: 480
Nie ma sensu wymieniać wszystkich funkcji VBulletin. Zaimplementowali prawie wszystko, czego mogą potrzebować administratorzy forum. Podcasting, obsługa multicytacji, podział na grupy społeczne i społeczności, system ocen (reputacja). Pakiet podstawowy można uzupełnić o rozszerzenia innych firm.
Silnik forum VBulletin powoduje poważne obciążenie serwera, zwłaszcza jeśli zainstalowane są dodatki i skrypty innych firm. Aby uniknąć problemów z ładowaniem stron w przyszłości, będziesz musiał przejść na normalny hosting. Zwłaszcza jeśli przewidujesz większy ruch dla swojego zasobu w przyszłości.
3 Odpowiedz przez PunBB
- Z: Moskwa, Sowchoznaj 3, lok. 98
- Zarejestrowany: 2014.07.07
- Posty: 3,825
- Po prostu lubię PunBB:
- 5 lata, 8 miesiące, 20 dni,
- Lubi: 480
Re: Które forum jest lepsze vBulletin czy PunBB
VBulletin, ze względu na wyjątkową odporność na hacki i roboty spamujące, jest zalecany do stosowania w dużych, poważnych projektach. Dodatkowo standardowe ustawienia i pliki konfiguracyjne można łatwo zmieniać na swój własny sposób, osiągając jeszcze większy efekt. W Internecie można znaleźć wiele instrukcji i poradników od rzemieślników ludowych, choć nie wszystkim warto ufać.
VBulletin realizuje wielkoskalowe pomysły w najlepszy możliwy sposób. Ciągłe aktualizacje, wysoka jakość usług, dodatkowe rozszerzenia i niezawodne mechanizmy bezpieczeństwa – to wszystko w pełni uzasadnia wydane pieniądze na produkt.
4 Odpowiedz przez PunBB
- Z: Moskwa, Sowchoznaj 3, lok. 98
- Zarejestrowany: 2014.07.07
- Posty: 3,825
- Po prostu lubię PunBB:
- 5 lata, 8 miesiące, 20 dni,
- Lubi: 480
Re: Które forum jest lepsze vBulletin czy PunBB
Nie ma sensu wymieniać wszystkich funkcji - ona (lub jej dodatki) implementuje prawie wszystko, czego administrator może potrzebować do stworzenia forum. Istnieje wiele cytowań, wsparcie dla podcastów, społeczności użytkowników, grup społecznościowych, elastyczny system reputacji i wiele więcej.
Oczywiście vBulletin ma dużą liczbę dodatków i społeczności użytkowników, więc nie będzie problemów z utrzymaniem, zwłaszcza że istnieje oficjalny zespół wsparcia. Wadą vBulletina, choć niezbyt dużą, są płatne dodatki np. do blogów użytkowników.
Ogólnie rzecz biorąc, forum nie ma żadnych wad. Można go polecić do dużych, poważnych projektów właśnie ze względu na jego niezawodność i odporność na wszelkiego rodzaju ataki. W rezultacie powoduje to znaczne obciążenie serwera, zwłaszcza z zainstalowanymi dodatkami, ale w przypadku poważnych projektów zwykle używają poważnych serwerów i poważnych administratorów.
Główne zalety:
- Szybki i wydajny framework baz danych
- Interfejs składający się z szablonów
- Potężna wyszukiwarka
- Obsługa wielu języków
- Profile użytkowników
- Wydajny i wygodny panel administracyjny
- Nieograniczona liczba sekcji/tematów/wiadomości
- Powiadomienia e-mailem
- Wsparcie COPPA
W związku z tym, że producent nie udostępnia demo forum, które można zainstalować, musiałem zainstalować lewą wersję, pobraną od jakiegoś Vareznika. Dlatego instrukcje mogą nie w pełni odpowiadać procesowi instalacji forum licencyjnego. Po instalacji strona została usunięta i nie była wykorzystywana zgodnie z jej przeznaczeniem.
Aby zainstalować vBulletin, przejdź do panelu sterowania hostingu (przycisk z kołem zębatym obok kolejności hostingu w rozliczeniu), tam w „Menedżerze plików”, w nim przechodzimy do katalogu „www”. Kliknij przycisk „Prześlij plik do bieżącego katalogu”:
Określ ścieżkę do pliku na swoim komputerze:
Wybierz archiwum z vBulletinem i rozpakuj je:
Usuwamy pliki i katalogi, których nie potrzebujemy, w tym katalog naszej domeny www - pod warunkiem, że nie masz tam niczego, czego potrzebujesz. Jeśli nie umieścisz go w katalogu głównym witryny lub jest coś potrzebnego w katalogu witryny, nie musisz usuwać katalogu domeny www:
Wybierz katalog z instalatorem vBulletin i zmień jego nazwę:
Jako nazwę katalogu wpisz nazwę naszej witryny:
Przejdź do sekcji „Bazy danych” w panelu sterowania hostingu:
Utwórz nową bazę danych MySQL i użytkownika z pełnymi uprawnieniami do niej:
Należy pamiętać, że zarówno użytkownik, jak i baza danych automatycznie otrzymały prefiks na podstawie nazwy Twojego konta na serwerze hostingowym:
Wchodzimy na stronę główną naszej witryny i pojawia się następujący błąd vBulletin:
W pasku adresu wpisujemy ścieżkę do instalatora, dodajemy „install/install.php”, po czym uruchamia się program instalacyjny forum vBulletin:
Instalator vBulletin sprawdza obecność następujących plików:
Następnym krokiem jest sprawdzenie połączenia z bazą danych, nie przechodzi - bo... Plik konfiguracyjny forum zawiera nieprawidłowe dane:
Wracamy do panelu sterowania hostingu, menedżera plików, przechodzimy do katalogu z forum, następnie do podkatalogu „zawiera”. Otwórz plik „config.php”:
Do pliku konfiguracyjnego wpisujemy poprawne dane z bazy danych, po czym go zamykamy:
Wracamy do serwisu, do instalatora. naciśnij „F5”, tym razem wszystko jest w porządku, połączenie z bazą danych powiększyło się:
Instalator vBulletin tworzy tabele w bazie danych:
Instalator vBulletin zmienia typy niektórych tabel:
Dane wprowadzane są do bazy:
Importowane języki:
Style są importowane:
Pomoc jest importowana:
Nie dotykamy ustawień domyślnych, program instalacyjny vBulletin wszystko poprawnie określił:
Importowane są ustawienia domyślne:
Wprowadź dane administratora vBulletin:
Administrator vBulletin został pomyślnie dodany:
Instalacja vBulletin na hostingu została pomyślnie zakończona:
Kierując się ostatnią radą instalatora, usuń niepotrzebne pliki:
Możesz przejść do forum vBulletin, aby upewnić się, że wszystko działa poprawnie:
Każdy silnik wymaga pewnych działań, aby zoptymalizować go w celu uzyskania lepszej i szybszej wydajności. W naszym przypadku porozmawiamy o optymalizacji Vbulletin 4.
Ponieważ nasz silnik forum jest stale aktualizowany, nie będę pisać o optymalizacji wcześniejszych wersji Vbulletin, ale zacznę od wersji 4.1.12. Chociaż być może będę stopniowo uzupełniał ten artykuł optymalizacją dla poprzednich wersji, ponieważ nie wszyscy przechodzą na nowsze.
Tutaj podam kilka przykładów, dzięki którym Twoje forum Vbulletin będzie szybsze i lepsze (zaczynając od najprostszych rzeczy i przechodząc do bardziej skomplikowanych). Pamiętaj, że to, co sprawdziło się u mnie, niekoniecznie sprawdzi się u Ciebie. Dlatego wszelkich zmian dokonujesz na własne ryzyko i ryzyko.
Wyłączenie listy użytkowników.
Istnieje prosty sposób na wyłączenie tej funkcji w AdminCP. (Ustawienia -> Opcje -> Opcje listy użytkowników)
Nie jest to oczywiście globalne i można to pominąć i tego nie robić, wystarczy zadać sobie pytanie: czy tego potrzebujesz? Ponieważ istnieje lista, użytkownicy mogą ją sortować, sprawdzać, kto ma więcej wiadomości, reputację i tak dalej. Czy Twoi użytkownicy tego używają? Prawdopodobnie nie... kiedy ostatni raz sam korzystałeś z tej listy?
Jeśli chodzi o mnie, wydaje mi się, że te listy przynoszą korzyści tylko spamerom, ponieważ jest to najłatwiejszy sposób na zebranie wszystkich nazwisk uczestników forum Vbulletin 4 w celu wysyłania spamu w prywatnych wiadomościach.
Ponadto zapytanie wymagane do wygenerowania listy użytkowników jest okropne dla serwerów baz danych i może prowadzić do dużego obciążenia serwera.
Zwiększona prędkość przetwarzania listy wiadomości osobistych.
Jeśli nigdy nie importowałeś prywatnych wiadomości ze źródeł zewnętrznych za pomocą Impexu lub innych środków, możesz bezpiecznie polegać na sortowaniu identyfikatorów dla wiadomości prywatnych. Sortowanie według identyfikatora sprawi, że serwer bazy danych nie będzie musiał zrzucać prywatnych wiadomości do tabeli tymczasowej w celu wykonania sortowania (co znacznie przyspieszy zapytanie).
W tym celu należy zarejestrować mały moduł z lokalizacją w private_messagelist_filter i wpisać w nim:
If ($sortfield == "pmtext.dateline") $sortfield = "pm.pmid";
I to wszystko, właśnie sprawiłeś, że private.php jest o ~20% szybszy.
Skonfigurowaliśmy efektywniejsze wyszukiwanie najnowszych wiadomości od użytkownika.
Wchodzimy na FTP, szukamy pliku zawiera /class_userprofile.php i zamieniamy w nim dane w następujący sposób, szukamy:
$getlastposts = $this->registry->db->query_read_slave(" WYBIERZ wątek.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER DOŁĄCZ " . TABLE_PREFIX . "wątek JAKO wątek UŻYWAJĄC (threadid) WHERE thread.visible = 1 ORAZ post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ZAMÓW PRZEZ post.dateline DESC LIMIT 20 ");
i zastąp go tym (dokładniej ORDER BY):
$getlastposts = $this->registry->db->query_read_slave(" WYBIERZ wątek.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER DOŁĄCZ " . TABLE_PREFIX . "wątek JAKO wątek UŻYWAJĄC (threadid) WHERE thread.visible = 1 ORAZ post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ZAMÓW PRZEZ post.postid DESC LIMIT 20 ");
To sprawia, że żądanie jest nieco bardziej poprawne niż już jest. W ten sposób nie będziesz musiał sortować do tabeli tymczasowej. W przypadku użytkowników posiadających więcej niż 1000 wiadomości wstępne żądanie zajmie około 10 sekund, w naszym przypadku znacznie krócej. Dotyczy to przede wszystkim profilu użytkownika Vbulletin 4 w celu wyświetlania ostatnich postów.
Sprawdzanie indeksu tematów.
Jeśli Twoje fora mają domyślny porządek sortowania, który jest ustawiony bez zmian, tak jak zrobiliśmy to powyżej, upewnij się, że wszystkie Twoje indeksy znajdują się w odpowiednich tabelach. Zdarzały się przypadki, gdy indeksy z nieznanych mi powodów nakładały się na siebie i niektóre fora nie otwierały się.
Proponuję, aby domyślne sortowanie odbywało się w formie daty (kolumna wykorzystująca te dane nazywa się „linią daty”) i aby to zaimplementować, uruchommy zapytanie:
ALTER TABLE wątek ADD INDEX forumid2_dp (forumid, widoczne, przyklejone, linia danych)
Ta prośba dotyczy konkretnie mnie, w Twoim przypadku forumid2_dp powinno mieć Twoje imię i nazwisko. Używaj na własne ryzyko.
Zachowaj ostrożność podczas instalowania dodatków.
To, że ktoś tworzy moduły i hacki, nie oznacza, że są one stworzone specjalnie dla Ciebie, pracowały na dużych forach Vbulletin 4 i są wolne od błędów. Doskonałym przykładem są raporty o masowych włamaniach w wyniku tego czy innego włamania.
Oczywiście możemy założyć, że programiści nie mogą wziąć wszystkiego pod uwagę i przesiać wszystkie hacki, aby nie kolidowały, ale... Upewnij się, że moduł Vbulletin nie powoduje dużego obciążenia bazy danych, upewnij się, że hack ma potencjał ochrony przed zastrzykami SQL lub XSS. Niestety zastosowań i modyfikacji są tysiące i po prostu nie da się wszystkiego sprawdzić. Będzie lepiej, jeśli sam napiszesz wszystkie hacki lub zamówisz od kogoś innego. Specjalnie dostosowane do Ciebie i Twoich zadań.
Nie używaj tabel w InnoDB.
Tutaj oczywiście mogą mi napluć w twarz, bo ten temat był już poruszany milion razy, ale z własnego doświadczenia mogę powiedzieć, że na stołach MyISAM pracuję na 100% pod każdą akcję. Czasami przetwarzam 1000 żądań na sekundę.
Jeśli już zaczynasz wariować, gdzie wszystko się zawiesza podczas zapytań, zwłaszcza w nowym wyszukiwaniu Vbulletin, zmień tabele InnoDB na MyISAM. MyISAM szybciej reaguje na indywidualne żądania, ponieważ nie musisz zarządzać indywidualnym blokowaniem rekordów. InnoDB jest ogólnie szybszy, ale tylko dlatego, że umożliwia jednoczesne wykonywanie zapytań. Jeśli Twoje zapytania już działają szybko w MyISAM, nie ma potrzeby przełączania się na InnoDB. MOIM ZDANIEM.
Ocena artykułu
0%
Ocena
Ocena użytkownika: 0,35 (1 głosy)
Tylko w celach informacyjnych. Administracja nie ponosi odpowiedzialności za jej zawartość. Pobierz za darmo .
vBulletin Connect v5.3.3 to potężny, skalowalny i w pełni konfigurowalny pakiet forum dla Twojej witryny.
Wersja: 5.3.3 (Wyzerowany przez vBSupport.org)
Minimalne wymagania PHP 5.6
Kompatybilny z PHP 7.1
W przypadku nowej instalacji należy zmienić nazwę pliku htaccess.txt na .htaccess
Podczas aktualizacji usuń folder czcionek (przed rozpoczęciem aktualizacji).
Nowe szanse:
Nowy interfejs użytkownika z rozbudowaną integracją społecznościową;
Zoptymalizowany dla urządzeń mobilnych;
Uproszczona instalacja, zarządzanie i konfiguracja;
Nowa architektura bazy danych zapewniająca lepsze wyszukiwanie i lepszą wydajność;
Wygodna dynamiczna zmiana treści;
Zaawansowane do udostępniania wideo i zdjęć;
Pełna integracja z VigLink;
Ponad 100 innych nowych funkcji i ulepszeń;
Wbudowane aplikacje:
Forum dyskusyjne
Grupy
Ankiety
Bloga
Optymalizacja wyszukiwarki:
Adresy URL przyjazne SEO
Niestandardowe słowo kluczowe/opis META Tag
Elastyczność:
Rozszerzalne profile użytkowników
Przepisywanie adresu URL
Lokalizacja interfejsu
Metadane
Zgodność z normami:
Syndykacja treści (RSS)
Dystrybucja treści: RSS, Atom, XML
Kompatybilny z PHP v5.4
Niezniszczalny zintegrowany system:
Jedyne logowanie, którego dotyczy
System pojedynczej rozdzielczości
Jedyny administracyjny panel sterowania
Stwórz ciągły styl/motyw poprzez artykuły, blogi i fora
Panele dla każdej roli:
Kontrole administracyjne
Panel sterowania moderatora
Niestandardowy panel sterowania
Ujednolicony system rozstrzygania
Silnik szablonów mocy umożliwiający zaawansowane dostosowywanie
Kontrola użytkownika:
System dla wielu użytkowników z nieograniczoną liczbą ról i uprawnień
Zaangażowane grupy
Bezpieczeństwo
Granulowane moce
Powiadomienie o problemie
Kompatybilny protokół SSL
Captcha
Potwierdzenie adresu e-mail
Edytor wiadomości w Panelu Sterowania Administracyjnego
Zaloguj się do systemu „uderzenia”.
Zmiany adresu e-mail i hasła wymagają bieżącego hasła
Zgodny z ustawą o ochronie prywatności dzieci w Internecie (COPPA) z 1998 r
1. Przejdź do administracyjnego panelu sterowania:
Języki i zwroty - Pobierz / Prześlij języki.
2. W polu „Albo prześlij plik XML ze swojego komputera” wpisz ścieżkę do
plik vbulletin-language_ru.xml na swoim komputerze.
3. W opcji „Zastąp język” wybierz „Utwórz nowy język”
4. W polu „Tytuł przesłanego języka” wpisz nazwę języka.
Jeśli nie zostaną wprowadzone żadne dane, język będzie nazywany „rosyjskim (RU)”
5. Ustaw „Tak” na „Ignoruj wersję językową”
6. Ustaw „Tak” na „Odczytaj zestaw znaków z pliku XML”
7. Kliknij przycisk „Importuj” i poczekaj na zakończenie procesu pobierania.
7A Jeśli chcesz, możesz ustawić nowy język jako język „Domyślny”,
klikając znajdujący się obok przycisk „Domyślne” / „Wartość domyślna”.
Zapewne nie raz widziałeś fora poświęcone silnikowi vBulletin. Fora jako takie nie są już modne, ale vBulletin to wciąż jeden z najpopularniejszych silników. W jego najnowszej (piątej) wersji odkryto kilka luk, które mogą znacznie zrujnować życie administratora. W tym artykule opowiem Ci, jak się z nich korzysta.
Pierwszym problemem jest nieprawidłowe filtrowanie danych użytkownika. Poinformował o tym niezależny badacz bezpieczeństwa, który pragnął zachować anonimowość. Luka, choć posiada pewne ograniczenia, uzyskała status krytyczny, ponieważ umożliwia odczyt dowolnych plików i wykonanie dowolnego kodu w systemie docelowym.
Druga podatność została odkryta przez badaczy z TRUEL IT i otrzymała identyfikator CVE-2017-17672. Jest to związane z funkcjami deserializacji danych w silniku i może zostać wykorzystane przez osobę atakującą do usunięcia dowolnych plików z systemu.
Pełne raporty szczegółowo opisujące oba problemy zostały opublikowane w ramach programu Beyond Security firmy SecuriTeam. Istnieją również exploity PoC umożliwiające wykazanie luk w zabezpieczeniach. Przeanalizujmy to wszystko po kolei.
Przygotowania
Jako serwera użyłem dystrybucji WAMP.
Czytaj pliki, wykonuj polecenia
Zatem przyczyną pierwszej luki jest nieprawidłowa logika przetwarzania parametru Routestring, która umożliwia atakującemu umieszczenie dowolnego pliku na dysku poprzez dołączenie i wykonanie znajdującego się w nim kodu PHP.
Naszą ścieżkę zaczynamy od najważniejszego pliku - indeks.php, w którym następuje podstawowa inicjalizacja aplikacji.
/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $routing = $app->getRouter(); 61: $method = $routing->getAction(); 62: $szablon = $routing->getTemplate(); 63: $klasa = $routing->getControllerClass();Przyjrzyjmy się metodzie vB5_Frontend_Application::init.
/include/vb5/frontend/application.php
13: klasa vB5_Frontend_Application rozszerza vB5_ApplicationAbstract 14: ( 15: publiczna funkcja statyczna init($configFile) 16: ( 17: parent::init($configFile); 18: 19: self::$instance = nowa vB5_Frontend_Application(); 20: self::$instance->router = nowy vB5_Frontend_Routing();21: self::$instance->router->setRoutes();Tutaj interesuje nas metoda setRoutes.
47: funkcja publiczna setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $ścieżka = $_GET[" ciąg trasy"];Zmienna $path zawiera wartość danych użytkownika z parametru Routestring. Możesz przekazać do niego ścieżkę do strony forum, która zostanie załadowana.
![](https://i0.wp.com/xakep.ru/wp-content/uploads/2017/12/146882/vbulletin-routestring-use.jpg)
Powiedzmy, że zdaliśmy /test .
Po przypisaniu zmiennej następuje fragment kodu, który usuwa ukośnik na początku linii, jeśli występuje.
/include/vb5/frontend/routing.php
75: if (strlen($ścieżka) AND $ścieżka(0) == "/") 76: ( 77: $ścieżka = substr($ścieżka, 1); // $ścieżka = "test" 78: )zawiera\vb5\frontend\routing.php
83: if (strlen($ścieżka) > 2) 84: ( 85: $ext = strtolower(substr($path, -4)) ; 86: if (($ext == ".gif") LUB ($ext == „.png”) LUB ($ext == „.jpg”) LUB ($ext == „.css”) 87: LUB (strtolower(substr($ścieżka, -3)) == „.js” )) 88: ( 89: nagłówek("HTTP/1.0 404 nie znaleziono"); 90: die(""); 91: ) 92: )Jak widać, czek jest dość dziwny. Przynajmniej obecność listy zabronionych rozszerzeń zapisanych bezpośrednio w kodzie jest myląca. I w ogóle zastanawiający jest sam fakt, że przedłużenie uzyskuje się przez wycięcie czterech znaków z końca wiersza (wiersz 85). Ogólnie rzecz biorąc, jeśli spróbujemy otrzymać plik z rozszerzeniami gif, png, jsp, css lub js, serwer zwróci stronę 404 i skrypt przestanie się wykonywać. Po pozytywnym wyniku wszystkich kontroli wywoływana jest metoda getRoute z klasy vB_Api_Route za pomocą callApi. Wyszukuje odpowiednie trasy na podstawie informacji podanych przez użytkownika.
Kontynuacja jest dostępna tylko dla członków
Opcja 1. Dołącz do społeczności „site”, aby zapoznać się ze wszystkimi materiałami w serwisie
Członkostwo w społeczności w określonym terminie zapewni Ci dostęp do WSZYSTKICH materiałów Hackera, zwiększy Twoją osobistą zniżkę kumulacyjną i pozwoli Ci zgromadzić profesjonalną ocenę Xakep Score!