Άρρωστη βουλλετίνη. Ποιο φόρουμ είναι καλύτερο από το vBulletin ή το PunBB. Θέμα: Ποιο φόρουμ είναι καλύτερο από το vBulletin ή το PunBB

Πιθανότατα έχετε δει τα φόρουμ στον κινητήρα vBulletin περισσότερες από μία φορές. Τα φόρουμ ως τέτοια δεν είναι πλέον στο αποκορύφωμα της μόδας, αλλά το vBulletin εξακολουθεί να είναι ένας από τους πιο δημοφιλείς κινητήρες. Στην τελευταία (πέμπτη) έκδοσή του, εντοπίστηκαν αρκετά ευπάθειες που μπορούν να καταστρέψουν σημαντικά τη ζωή ενός διαχειριστή. Σε αυτό το άρθρο, θα εξηγήσω πώς αξιοποιούνται.

Το πρώτο πρόβλημα είναι το λανθασμένο φιλτράρισμα των δεδομένων χρήστη. Αναφέρθηκε από έναν ανεξάρτητο ερευνητή ασφαλείας που ήθελε να παραμείνει ανώνυμος. Η ευπάθεια, αν και έχει ορισμένους περιορισμούς, έχει λάβει την κατάσταση κρίσιμης σημασίας, επειδή σας επιτρέπει να διαβάσετε οποιοδήποτε αρχείο και να εκτελέσετε αυθαίρετο κώδικα στο σύστημα προορισμού.

Η δεύτερη ευπάθεια εντοπίστηκε από ερευνητές από την TRUEL IT και έλαβε το αναγνωριστικό CVE-2017-17672. Σχετίζεται με τις ιδιαιτερότητες της αποεπιλογής δεδομένων στον κινητήρα και μπορεί να χρησιμοποιηθεί από έναν εισβολέα για τη διαγραφή αυθαίρετων αρχείων στο σύστημα.

Πλήρεις αναφορές που περιγράφουν και τα δύο ζητήματα έχουν δημοσιευτεί στο πλαίσιο του προγράμματος SecuriTeam's Beyond Security. Υπάρχουν επίσης PoC εκμεταλλεύσεις για να δείξουν ευπάθειες. Ας περάσουμε όλα αυτά με τη σειρά.

Παρασκευή

Χρησιμοποίησα τη διανομή WAMP ως διακομιστής.

Διαβάζουμε αρχεία, εκτελούμε εντολές

Έτσι, ο λόγος για την πρώτη ευπάθεια είναι η λανθασμένη λογική κατά την επεξεργασία της παραμέτρου routestring, η οποία επιτρέπει σε έναν εισβολέα να προσθέσει οποιοδήποτε αρχείο στο δίσκο μέσω του include και να εκτελέσει τον κώδικα PHP που υπάρχει σε αυτό.

Η διαδρομή μας ξεκινά με το πιο σημαντικό αρχείο - index.php, όπου πραγματοποιείται η βασική προετοιμασία της εφαρμογής.

/index.php
48: $ app = vB5_Frontend_Application :: init ("config.php"); ... 60: $ routing = $ app-> getRouter (); 61: $ method = $ routing-> getAction (); 62: $ template = $ routing-> getTemplate (); 63: $ class = $ routing-> getControllerClass ();

Ας ρίξουμε μια ματιά στη μέθοδο vB5_Frontend_Application :: init.

/includes/vb5/frontend/application.php
13: class vB5_Frontend_Application επεκτείνεται vB5_ApplicationAbstract 14: (15: public static function init ($ configFile) 16: (17: parent :: init ($ configFile); 18: 19: self :: $ instance = new vB5_Frontend_Application (); 20: self :: $ instance-> router = new vB5_Frontend_Routing (); 21: self :: $ instance-> router-> setRoutes ();

Εδώ μας ενδιαφέρει η μέθοδος setRoutes.

47: public function setRoutes () 48: (49: $ this-> processQueryString (); ... 54: if (isset ($ _ GET ["routestring"])) 55: (56: $ path = $ _GET [ "routestring"];

Η μεταβλητή $ path λαμβάνει την τιμή ημερομηνίας χρήστη από την παράμετρο routestring. Μπορείτε να περάσετε τη διαδρομή προς τη σελίδα του φόρουμ και να φορτωθεί.



Ας πούμε ότι περάσαμε / δοκιμάσαμε.

Μετά την εκχώρηση μιας μεταβλητής, ακολουθεί ένα κομμάτι κώδικα που απαλλάσσει την κάθετο στην αρχή της γραμμής, εάν υπάρχει.

/includes/vb5/frontend/routing.php
75: if (strlen ($ path) AND $ path (0) == "/") 76: (77: $ path = substr ($ path, 1); // $ path = "test" 78 :)
περιλαμβάνει \ vb5 \ frontend \ routing.php
83: if (strlen ($ path)> 2) 84: (85: $ ext = strtolower (substr ($ path, -4)); 86: if (($ ext == ".gif") Ή ($ ext == ".png") Ή ($ ext == ".jpg") Ή ($ ext == ".css") 87: OR (strtolower (substr ($ path, -3)) == ".js" )) 88: (89: κεφαλίδα ("HTTP / 1.0 404 Not Found"); 90: die (""); 91 :) 92 :)

Όπως μπορείτε να δείτε, το τεστ είναι μάλλον παράξενο. Τουλάχιστον, η παρουσία μιας λίστας απαγορευμένων επεκτάσεων ενσωματωμένη στον κώδικα είναι ενοχλητική. Και σε γενικές γραμμές, το ίδιο το γεγονός ότι η επέκταση λαμβάνεται απογυμνώνοντας τέσσερις χαρακτήρες από το τέλος της γραμμής (γραμμή 85) είναι προβληματική. Γενικά, αν προσπαθήσουμε να πάρουμε ένα αρχείο με τις επεκτάσεις gif, png, jsp, css ή js, ο διακομιστής θα επιστρέψει μια σελίδα 404 και το σενάριο θα σταματήσει να εκτελείται. Όταν περάσουν όλοι οι έλεγχοι, η μέθοδος getRoute από την κλάση vB_Api_Route καλείται χρησιμοποιώντας το callApi. Αναζητά κατάλληλες διαδρομές με βάση τις πληροφορίες που παρέχει ο χρήστης.

Η συνέχεια είναι διαθέσιμη μόνο για τους συμμετέχοντες

Επιλογή 1. Γίνετε μέλος της κοινότητας "ιστότοπος" για να διαβάσετε όλο το υλικό στον ιστότοπο

Η συμμετοχή στην κοινότητα κατά τη διάρκεια της καθορισμένης περιόδου θα σας ανοίξει την πρόσβαση σε ΟΛΑ τα υλικά του Hacker, θα αυξήσετε την προσωπική σας αθροιστική έκπτωση και θα σας επιτρέψει να συγκεντρώσετε ένα επαγγελματικό σκορ Xakep!

  • Από:
  • Εγγεγραμμένος: 2014.07.07
  • Δημοσιεύσεις: 3,825
  • Μου αρέσει ακριβώς το PunBB:
  • 5 χρόνια, 8 μήνες, 20 μέρες,
  • Μου αρέσει: 480

Θέμα: Ποιο φόρουμ είναι καλύτερο από το vBulletin ή το PunBB

Το VBulletin (Vobla ή Bulka, όπως θέλουμε να το ονομάσουμε) είναι ένας από τους παλαιότερους εμπορικούς κινητήρες φόρουμ που γράφτηκαν χρησιμοποιώντας τεχνολογίες PHP και MySQL Από την κυκλοφορία της πρώτης έκδοσης το 2000, έχει γίνει τεράστια δουλειά για τη βελτίωση της λειτουργικότητας, η οποία επέτρεψε στη VB να μπει στη λίστα με τα καλύτερα προϊόντα λογισμικού.

Η άδεια VBulletin θα σας κοστίσει περίπου 250 $. Μην διστάσετε, αυτό είναι απολύτως δικαιολογημένο απόβλητο και σίγουρα θα πληρώσει τον εαυτό του εξοικονομώντας χρόνο εργασίας και νευρικά κύτταρα. Τα περισσότερα από αυτά τα χρήματα προορίζονται για προγραμματιστές και προγραμματιστές, οι οποίοι αργότερα θα τα χρησιμοποιήσουν για να βελτιώσουν τη λειτουργικότητα και να κυκλοφορήσουν ενημερώσεις κώδικα και πρόσθετα (ναι, όλες οι ενημερώσεις θα σας παραδοθούν δωρεάν κατά τη διάρκεια του έτους).

2 Απάντηση από PunBB

  • Από: Μόσχα, Sovkhoznay 3, apt. 98
  • Εγγεγραμμένος: 2014.07.07
  • Δημοσιεύσεις: 3,825
  • Μου αρέσει ακριβώς το PunBB:
  • 5 χρόνια, 8 μήνες, 20 μέρες,
  • Μου αρέσει: 480

Δεν έχει νόημα να απαριθμήσουμε όλες τις λειτουργίες του VBulletin. Έχουν εφαρμόσει σχεδόν ό, τι χρειάζονται οι διαχειριστές του φόρουμ Podcasting, υποστήριξη multicitation, χωρισμένη σε Κοινωνικές Ομάδεςκαι κοινότητες, σύστημα αξιολόγησης (φήμη). Βασική διαμόρφωσημπορεί να συμπληρωθεί με επεκτάσεις τρίτων.

Η μηχανή του φόρουμ VBulletin δημιουργεί ένα σοβαρό φορτίο στον διακομιστή, ειδικά εάν έχουν εγκατασταθεί πρόσθετα και σενάρια τρίτων. Προκειμένου να αποφευχθούν προβλήματα με τη φόρτωση σελίδων στο μέλλον, θα πρέπει να καταβάλλετε μια κανονική φιλοξενία. Ειδικά αν προβλέψετε περισσότερη επισκεψιμότητα για τον πόρο σας στο μέλλον.

3 Απάντηση από PunBB

  • Από: Μόσχα, Sovkhoznay 3, apt. 98
  • Εγγεγραμμένος: 2014.07.07
  • Δημοσιεύσεις: 3,825
  • Μου αρέσει ακριβώς το PunBB:
  • 5 χρόνια, 8 μήνες, 20 μέρες,
  • Μου αρέσει: 480

Re: Ποιο φόρουμ είναι καλύτερο vBulletin ή PunBB

Το VBulletin, λόγω της ακραίας αντοχής του σε hacking και spam bots, συνιστάται για χρήση σε μεγάλα, σοβαρά έργα. Επιπλέον, οι προεπιλεγμένες ρυθμίσεις και τα αρχεία διαμόρφωσης μπορούν εύκολα να τροποποιηθούν σύμφωνα με τις προτιμήσεις σας για ακόμη μεγαλύτερο αποτέλεσμα. Υπάρχουν πολλές οδηγίες και οδηγοί από λαϊκούς τεχνίτες στο Διαδίκτυο, αν και δεν πρέπει να είναι όλοι αξιόπιστοι.

Το VBulletin, εφαρμόζει ιδέες μεγάλης κλίμακας με τον καλύτερο δυνατό τρόπο. Συνεχείς ενημερώσεις, υπηρεσίες υψηλής ποιότητας, πρόσθετες επεκτάσεις και αξιόπιστοι μηχανισμοί ασφαλείας - όλα αυτά δικαιολογούν πλήρως τα χρήματα που δαπανώνται για το προϊόν.

4 Απάντηση από PunBB

  • Από: Μόσχα, Sovkhoznay 3, apt. 98
  • Εγγεγραμμένος: 2014.07.07
  • Δημοσιεύσεις: 3,825
  • Μου αρέσει ακριβώς το PunBB:
  • 5 χρόνια, 8 μήνες, 20 μέρες,
  • Μου αρέσει: 480

Re: Ποιο φόρουμ είναι καλύτερο vBulletin ή PunBB

Δεν έχει νόημα να παραθέσετε όλες τις λειτουργίες - (ή σε προσθήκες) εφαρμόζει σχεδόν όλα όσα μπορεί να χρειαστεί ένας διαχειριστής για να δημιουργήσει ένα φόρουμ. Υπάρχει πολυμέσα, υποστήριξη podcasting, κοινότητες χρηστών, κοινωνικές ομάδες, ένα ευέλικτο σύστημα φήμης και πολλά άλλα.

Φυσικά, για το vBulletin υπάρχει ένας μεγάλος αριθμός απόπρόσθετα και κοινότητες χρηστών, οπότε δεν θα υπάρξουν προβλήματα με τη συντήρηση, ειδικά επειδή υπάρχει μια επίσημη υπηρεσία υποστήριξης. Το μειονέκτημα του vBulletin, αν και δεν είναι πολύ μεγάλο, είναι τα πρόσθετα επί πληρωμή, για παράδειγμα, για ιστολόγια χρηστών.

Σε γενικές γραμμές, το φόρουμ δεν έχει ελλείψεις. Μπορεί να συνιστάται για μεγάλα, σοβαρά έργα, ακριβώς λόγω της αξιοπιστίας και της αντοχής του σε όλα τα είδη επιθέσεων. Ως αποτέλεσμα, δημιουργεί ένα σημαντικό φορτίο στο διακομιστή, ειδικά με εγκατεστημένα πρόσθετα, αλλά για σοβαρά έργα συνήθως χρησιμοποιούν σοβαρούς διακομιστές και σοβαρούς διαχειριστές.

Μόνο για ενημερωτικούς σκοπούς. Η διοίκηση δεν είναι υπεύθυνη για το περιεχόμενό της. ΔΩΡΕΑΝ Λήψη .


Το vBulletin Connect v5.3.3 είναι ένα ισχυρό, επεκτάσιμο και πλήρως προσαρμόσιμο πακέτο φόρουμ για τον ιστότοπό σας.

Εκδοχή: 5.3.3 (Nulled από το vBSupport.org)

Ελάχιστες απαιτήσεις Php 5.6
Συμβατότητα με Php 7.1
Πότε νέα εγκατάστασηπρέπει να μετονομάσετε το αρχείο htaccess.txt σε .htaccess
Κατά την ενημέρωση, διαγράψτε το φάκελο γραμματοσειρών (πριν ξεκινήσετε την ενημέρωση).

Νέες ευκαιρίες:
Νέα διεπαφή χρήστη με εκτεταμένη κοινωνική ένταξη.
Βελτιστοποιημένο για κινητές συσκευές.
Απλοποιημένη εγκατάσταση, διαχείριση και διαμόρφωση.
Νέα αρχιτεκτονική βάσης δεδομένων για καλύτερη αναζήτηση και καλύτερη απόδοση.
Βολική αλλαγή δυναμικού περιεχομένου.
Προηγμένη για κοινή χρήση βίντεο και εικόνων.
Πλήρης ενσωμάτωση με το VigLink.
Περισσότερα από 100 άλλα νέα χαρακτηριστικά και βελτιώσεις.

Ενσωματωμένες εφαρμογές:
Φόρουμ συζήτησης
Ομάδες
Δημοσκοπήσεις
Ιστολόγιο

Βελτιστοποίηση μηχανών αναζήτησης:
Φιλικές διευθύνσεις URL SEO
Προσαρμοσμένη λέξη-κλειδί / ετικέτα περιγραφής META

Ευκαμψία:
Επεκτάσιμα προφίλ χρηστών
Επανεγγραφή διευθύνσεων URL
Εντοπισμός διεπαφής
Μεταδεδομένα

Συμμόρφωση με τα πρότυπα:
Κοινοποίηση περιεχομένου (RSS)
Κοινοποίηση περιεχομένου: RSS, Atom, XML
Συμβατό με PHP v5.4

Μη εκρηκτικό ολοκληρωμένο σύστημα:
Η μόνη σύνδεση που εμπλέκεται
Το μόνο σύστημα αδειών
Ο μόνος πίνακας ελέγχου διαχειριστή
Δημιουργήστε ένα συνεχές στυλ / θέμα μέσω άρθρων, ιστολογίων, φόρουμ

Πίνακες ελέγχου για κάθε ρόλο:
Διοικητικοί έλεγχοι
Πίνακας ελέγχου συντονιστή
Προσαρμοσμένος πίνακας ελέγχου
Ενοποιημένο σύστημα αδειών
Κινητήρας μοτίβου ισχύος για προηγμένη προσαρμογή

Έλεγχος χρήστη:
Σύστημα πολλαπλών χρηστών με απεριόριστους ρόλους και εξουσίες
Συμμετέχουσες ομάδες
Ασφάλεια
Κοκκώδεις δυνάμεις
Ειδοποίηση προβλήματος
Συμβατό με SSL
Captcha
Επαλήθευση email
Πίνακας ελέγχου του προγράμματος επεξεργασίας ειδήσεων διαχειριστή
Συνδεθείτε στο σύστημα "απεργία"
Οι αλλαγές email και κωδικού πρόσβασης απαιτούν έναν τρέχοντα κωδικό πρόσβασης
Συμμορφώνεται με το νόμο για την προστασία της ιδιωτικής ζωής των παιδιών στο Διαδίκτυο (COPPA) 1998

1. Μεταβείτε στον πίνακα ελέγχου διαχειριστή:
Γλώσσες και φράσεις - Λήψη / Μεταφόρτωση γλωσσών.
2. Στο πεδίο "ΑΛΛΗ μεταφόρτωση του αρχείου XML από τον υπολογιστή σας", εισαγάγετε τη διαδρομή προς
το αρχείο vbulletin-language_en.xml στον υπολογιστή σας.
3. Στην παράμετρο "Overwrite Language", επιλέξτε "Δημιουργία νέας γλώσσας"
4. Στο πεδίο "Τίτλος για μεταφορτωμένη γλώσσα", εισαγάγετε ένα όνομα για τη γλώσσα.
Εάν δεν έχουν εισαχθεί τα δεδομένα, η γλώσσα θα ονομάζεται "Ρωσικά (RU)"
5. Ορίστε "Ναι" σε "Παράβλεψη έκδοσης γλώσσας"
6. Ορίστε "Ναι" σε "Ανάγνωση Charset από XML File"
7. Κάντε κλικ στο κουμπί "Εισαγωγή" και περιμένετε να ολοκληρωθεί η διαδικασία λήψης.
7Α Εάν θέλετε, μπορείτε να ορίσετε τη νέα γλώσσα ως "Προεπιλεγμένη" γλώσσα,
κάνοντας κλικ στο κουμπί "Προεπιλογή" δίπλα του.





Κύρια πλεονεκτήματα:

  • Γρήγορη και αποτελεσματική ραχοκοκαλιά της βάσης δεδομένων
  • Μια διεπαφή που αποτελείται από πρότυπα
  • Ισχυρή μηχανή αναζήτησης
  • Πολύγλωσση υποστήριξη
  • Προφίλ χρηστών
  • Ισχυρό και φιλικό προς τον χρήστη πίνακα διαχείρισης
  • Απεριόριστες ενότητες / Θέματα / Δημοσιεύσεις
  • Ειδοποιήσεις ηλεκτρονικού ταχυδρομείου
  • Υποστήριξη COPPA

Λόγω του γεγονότος ότι ο κατασκευαστής δεν παρέχει επιδείξεις του φόρουμ, τα οποία μπορούν να εγκατασταθούν, έπρεπε να εγκαταστήσουμε την αριστερή έκδοση που κατεβάσαμε από κάποιο είδος vareznik. Επομένως, οι οδηγίες ενδέχεται να μην ταιριάζουν ακριβώς με τη διαδικασία εγκατάστασης του φόρουμ με άδεια. Μετά την εγκατάσταση, ο ιστότοπος καταργήθηκε και δεν χρησιμοποιήθηκε για τον επιδιωκόμενο σκοπό.

Για να εγκαταστήσετε το vBulletin, μεταβείτε στον πίνακα ελέγχου φιλοξενίας (το κουμπί με γρανάζι απέναντι από την παραγγελία φιλοξενίας στη χρέωση), μεταβείτε στον "Διαχειριστή αρχείων", μεταβείτε στον κατάλογο "www". Πατήστε το κουμπί "Μεταφόρτωση αρχείου στον τρέχοντα κατάλογο":

Υποδεικνύουμε τη διαδρομή προς το αρχείο στον υπολογιστή σας:

Επιλέξτε το αρχείο με το vBulletin, αποσυμπιέστε το:

Διαγράφουμε αρχεία και καταλόγους που δεν χρειαζόμαστε, συμπεριλαμβανομένου του καταλόγου του τομέα μας www - υπό την προϋπόθεση ότι δεν έχετε τίποτα που χρειάζεστε εκεί. Εάν βάλετε κάτι άλλο εκτός από τη ρίζα του ιστότοπου ή υπάρχει κάτι απαραίτητο στον κατάλογο τοποθεσιών, δεν χρειάζεται να διαγράψετε τον κατάλογο τομέα www:

Επιλέξτε τον κατάλογο με το πρόγραμμα εγκατάστασης vBulletin, μετονομάστε τον:

Εισαγάγετε το όνομα του ιστότοπού μας ως όνομα καταλόγου:

Μεταβείτε στην ενότητα "Βάσεις δεδομένων" του πίνακα ελέγχου φιλοξενίας:

Δημιουργούμε νέα βάση Δεδομένα MySQLκαι ένας χρήστης με πλήρη δικαιώματα πρόσβασης σε αυτό:

Λάβετε υπόψη ότι τόσο ο χρήστης όσο και η βάση δεδομένων προτάθηκαν αυτόματα από το όνομα του λογαριασμού σας στον διακομιστή φιλοξενίας:

Πάμε στο αρχική σελίδαστον ιστότοπό μας, λαμβάνουμε το ακόλουθο σφάλμα vBulletin:

Οδηγούμε στη διαδρομή για το πρόγραμμα εγκατάστασης στη γραμμή διευθύνσεων, προσθέτουμε το "install / install.php", μετά το οποίο ξεκινά το πρόγραμμα εγκατάστασης του φόρουμ vBulletin:

Το πρόγραμμα εγκατάστασης vBulletin ελέγχει τα αρχεία:

Στο επόμενο βήμαυπάρχει έλεγχος της σύνδεσης με τη βάση δεδομένων, δεν περνά - γιατί Εσφαλμένα δεδομένα που έχουν εισαχθεί στο αρχείο διαμόρφωσης φόρουμ:

Επιστρέφουμε στον πίνακα ελέγχου φιλοξενίας, διαχείριση αρχείων, μεταβείτε στον κατάλογο με το φόρουμ και, στη συνέχεια, ο υποκατάλογος "περιλαμβάνει". Ανοίξτε το αρχείο "config.php":

Εισάγουμε τα σωστά δεδομένα από τη βάση δεδομένων στο αρχείο config, μετά το οποίο το κλείνουμε:

Επιστρέφουμε στον ιστότοπο, στον εγκαταστάτη. πατήστε "F5", αυτή τη φορά όλα είναι καλά, η σύνδεση με τη βάση έχει αναπτυχθεί μαζί:

Το πρόγραμμα εγκατάστασης vBulletin δημιουργεί πίνακες στη βάση δεδομένων:

Το πρόγραμμα εγκατάστασης vBulletin αλλάζει τους τύπους ορισμένων πινάκων:

Τα δεδομένα εισάγονται στη βάση δεδομένων:

Οι γλώσσες εισάγονται:

Εισάγονται στυλ:

Η βοήθεια εισάγεται:

Δεν αγγίζουμε τις προεπιλεγμένες ρυθμίσεις, το πρόγραμμα εγκατάστασης vBulletin έχει καθορίσει σωστά τα πάντα:

Οι προεπιλεγμένες ρυθμίσεις εισάγονται:

Εισαγάγετε τα στοιχεία διαχειριστή vBulletin:

Ο διαχειριστής του VBulletin προστέθηκε με επιτυχία:

Η εγκατάσταση του vBulletin στο hosting ολοκληρώθηκε με επιτυχία:

Ακολουθώντας τις τελευταίες συμβουλές του προγράμματος εγκατάστασης, διαγράψτε τα περιττά αρχεία:

Μπορείτε να μεταβείτε στο φόρουμ vBulletin για να βεβαιωθείτε ότι όλα λειτουργούν σωστά:

Οποιοσδήποτε κινητήρας απαιτεί ορισμένες ενέργειες για βελτιστοποίηση για το καλύτερο και γρήγορη δουλειά... Στην περίπτωσή μας, θα μιλήσουμε για τη βελτιστοποίηση του Vbulletin 4.

Δεδομένου ότι η μηχανή του φόρουμ μας ενημερώνεται συνεχώς, δεν θα γράψω για τη βελτιστοποίηση παλαιότερων εκδόσεων του Vbulletin, αλλά θα ξεκινήσω με την έκδοση 4.1.12. Αν και είναι δυνατό, θα συμπληρώσω σταδιακά αυτό το άρθρο με βελτιστοποίηση για ΠΡΟΗΓΟΥΜΕΝΕΣ ΕΚΔΟΣΕΙΣ, καθώς δεν αλλάζουν όλοι σε νεότερα.

Εδώ θα δώσω μερικά παραδείγματα για να κάνω το φόρουμ Vbulletin σας πιο γρήγορο και καλύτερο (ξεκινώντας από τα πιο απλά πράγματα και προχωρώντας στα πιο περίπλοκα). Λάβετε υπόψη ότι τα πράγματα που δουλεύουν για μένα ενδέχεται να μην λειτουργούν απαραίτητα για εσάς. Επομένως, κάνετε όλες τις αλλαγές με δική σας ευθύνη και κίνδυνο.

Απενεργοποίηση λίστας χρηστών.

Υπάρχει ένας εύκολος τρόπος, απλώς απενεργοποιήστε τη λειτουργία στο AdminCP. (Ρυθμίσεις -> Επιλογές -> Επιλογές καταχώρισης χρηστών)

Δεν είναι φυσικά παγκόσμιο, και μπορείτε να το παραλείψετε και να μην το κάνετε, απλώς αναρωτηθείτε την ερώτηση που το χρειάζεστε; Εφόσον έχουν μια λίστα, οι χρήστες μπορούν να την ταξινομήσουν, να δουν ποιος έχει περισσότερα μηνύματα, φήμη και ούτω καθεξής. Οι χρήστες σας το εκμεταλλεύονται; Πιθανώς όχι ... όταν είστε εσείς τελευταία φοράχρησιμοποίησε αυτήν τη λίστα;

Όσο για μένα, μου φαίνεται ότι αυτές οι λίστες είναι μόνο προς όφελος των spammers, καθώς αυτός είναι ο ευκολότερος τρόπος συλλογής όλων των ονομάτων των μελών του φόρουμ Vbulletin 4 για αποστολή ανεπιθύμητων μηνυμάτων σε ιδιωτικά μηνύματα.

Επιπλέον, το ερώτημα που απαιτείται για τη δημιουργία μιας λίστας χρηστών είναι τρομερό για διακομιστές βάσης δεδομένων και μπορεί να οδηγήσει σε μεγάλο φορτίο διακομιστή.

Αυξήστε την ταχύτητα κατά την επεξεργασία μιας λίστας ιδιωτικών μηνυμάτων.

Εάν δεν έχετε εισαγάγει ποτέ ιδιωτικά μηνύματα από εξωτερικές πηγέςχρησιμοποιώντας το Impex ή άλλα μέσα, μπορείτε να βασιστείτε ασφαλώς στη διαλογή αναγνωριστικών για ιδιωτικά μηνύματα. Η ταξινόμηση κατά ID θα αποτρέψει τον διακομιστή βάσης δεδομένων σας από το να πρέπει να απορρίψει ιδιωτικά μηνύματα σε έναν προσωρινό πίνακα για να εκτελέσει την ταξινόμηση (κάνοντας το ερώτημα πολύ πιο γρήγορο).

Για να το κάνετε αυτό, πρέπει να εγγραφείτε μια μικρή ενότητα στην τοποθεσία στο private_messagelist_filter και να γράψετε τα ακόλουθα σε αυτό:

Εάν ($ sortfield == "pmtext.dateline") $ sortfield = "pm.pmid";

Και αυτό είναι, μόλις κάνατε το private.php ~ 20% πιο γρήγορα.


Διαμόρφωση περισσότερων αποτελεσματική αναζήτησηπρόσφατα μηνύματα από τον χρήστη.

Πηγαίνουμε στο ftp, αναζητούμε το αρχείο περιλαμβάνει /class_userprofile.php και αντικαθιστούμε τα δεδομένα σε αυτό ως εξής, αναζητάμε:

$ getlastposts = $ this-> registry-> db-> query_read_slave ("SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM". TABLE_PREFIX. "Δημοσίευση ως ανάρτηση INNER ΣΥΜΜΕΤΟΧΗ ΟΡΙΟ 20 ");

και αντικαταστήστε με αυτό (πιο συγκεκριμένα ORDER BY):

$ getlastposts = $ this-> registry-> db-> query_read_slave ("SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM". TABLE_PREFIX. "Δημοσίευση ως ανάρτηση INNER ΕΓΓΡΑΦΕΙΤΕ ". TABLE_PREFIX." Νήμα ως νήμα ΧΡΗΣΗ (threadid) WHERE thread.visible = 1 AND post.userid = ". $ This-> userinfo [" userid "]." ΚΑΙ post.visible = 1 ΠΑΡΑΓΓΕΛΙΑ ΜΕ post.postid DESC ΟΡΙΟ 20 ");

Αυτό καθιστά το αίτημα λίγο πιο σωστό από αυτό που υπάρχει σε αυτήν τη φόρμα. Επομένως, δεν υπάρχει ανάγκη ταξινόμησης σε προσωρινό πίνακα. Για χρήστες με περισσότερα από 1000 μηνύματα, το αρχικό αίτημα θα διαρκέσει περίπου 10 δευτερόλεπτα, στην περίπτωσή μας, πολύ λιγότερο. Αυτό ισχύει κυρίως για το προφίλ χρήστη του Vbulletin 4, για την εμφάνιση των τελευταίων δημοσιεύσεων.

Έλεγχος του ευρετηρίου θεμάτων.

Εάν τα φόρουμ σας έχουν μια προεπιλεγμένη σειρά ταξινόμησης και είναι αμετάβλητα, όπως κάναμε παραπάνω, βεβαιωθείτε ότι όλα τα ευρετήρια σας βρίσκονται στους πίνακες τους. Υπήρξαν περιπτώσεις κατά τις οποίες τα ευρετήρια αλληλεπικαλύπτονταν για λόγους άγνωστους σε μένα και ορισμένα φόρουμ δεν άνοιξαν.

Προτείνω να το κάνω έτσι ώστε η προεπιλεγμένη ταξινόμηση να έχει τη μορφή ημερομηνίας (η στήλη που χρησιμοποιεί αυτά τα δεδομένα ονομάζεται "γραμμή δεδομένων") και για να το εφαρμόσουμε, εκτελούμε το ερώτημα:

ALTER TABLE thread ADD INDEX forumid2_dp (forumid, ορατό, κολλώδες, χρονοδιάγραμμα)

Αυτό το αίτημα ισχύει για μένα συγκεκριμένα, στην περίπτωσή σας το forumid2_dp θα πρέπει να έχει το όνομά σας. Χρησιμοποιήστε το με δική σας ευθύνη.

Να είστε προσεκτικοί κατά την εγκατάσταση πρόσθετων.

Ακριβώς επειδή κάποιος δημιουργεί ενότητες και hacks δεν σημαίνει ότι έχουν δημιουργηθεί μόνο για εσάς, εργάστηκαν στα μεγάλα φόρουμ Vbulletin 4 και δεν έχουν σφάλματα. Ένα εξαιρετικό παράδειγμα είναι οι αναφορές μαζικών παραβιάσεων, μέσω αυτής ή αυτής της εισβολής.

Φυσικά, μπορείτε να υποθέσετε ότι οι προγραμματιστές δεν μπορούν να λάβουν υπόψη τα πάντα και να φτυαρίσουν όλες τις αμυχές έτσι ώστε να μην έρχονται σε διένεξη, αλλά ... Βεβαιωθείτε ότι η μονάδα Vbulletin δεν προκαλεί μεγάλα φορτία βάσης δεδομένων, βεβαιωθείτε ότι το hack έχει τη δυνατότητα προστασίας από Έγχυση SQLή XSS. Δυστυχώς, υπάρχουν χιλιάδες εφαρμογές και τροποποιήσεις, και απλά δεν είναι ρεαλιστικό να ελέγχετε τα πάντα. Θα είναι καλύτερο αν γράψετε μόνοι σας όλα τα hacks ή παραγγείλετε από κάποιον. Ειδικά για εσάς και τις εργασίες σας.

Μην χρησιμοποιείτε πίνακες στο InnoDB.

Εδώ, φυσικά, μπορούν να φτύνουν στο πρόσωπό μου, αφού αυτό το θέμα έχει ήδη συζητηθεί εκατομμύριο φορές, αλλά από τη δική μου εμπειρία μπορώ να πω ότι δουλεύω 100% στους πίνακες MyISAM για οποιαδήποτε ενέργεια. Μερικές φορές επεξεργάζομαι 1000 αιτήσεις ανά δευτερόλεπτο.

Εάν έχετε ήδη αρχίσει να φρικάρεις όπου τα πάντα κρέμονται με ερωτήματα, ειδικά στη νέα αναζήτηση Vbulletin, αλλάξτε τους πίνακες InnoDB στο MyISAM. Το MyISAM ανταποκρίνεται ταχύτερα σε μεμονωμένα αιτήματα επειδή δεν χρειάζεται να διαχειριστεί τον αποκλεισμό μεμονωμένων εγγραφών. Το InnoDB είναι πιο γρήγορο συνολικά, αλλά μόνο επειδή επιτρέπει την ταυτόχρονη εκτέλεση ερωτημάτων. Εάν τα ερωτήματά σας εκτελούνται ήδη γρήγορα στο MyISAM, δεν χρειάζεται να μεταβείτε στο InnoDB. IMHO.

Αξιολόγηση άρθρου

0%

Εκτίμηση

Βαθμολογία χρηστών: 0.35 (1 ψήφοι)