Wednesday, March 28, 2012

Opensource CMS vs Custom CMS

2 comments
Για μια δυναμική ιστοσελίδα πολύ σημαντικό ρόλο παίζει το διαχειριστικό σύστημα (ή αλλιώς Content Management System – CMS), καθώς πρέπει να είναι οργανωμένο με τέτοιο τρόπο ώστε να είναι κατανοητό και να μπορεί να καλύψει όλο το περιεχόμενο που θέλουμε να προβάλλουμε σε αυτήν. Αρκετά μεγάλη αποδοχή βρίσκουν τα opensource cms, όπως Drupal, Joomla, Wordpress τα οποία προσφέρουν στον χρήστη ήδη «έτοιμο» έναν αριθμό δυνατοτήτων. Ωστόσο, στον χώρο του Internet συχνά προτιμάται το custom cms το οποίο σχεδιάζεται αποκλειστικά και μόνο για την επιχείρηση στην οποία απευθύνεται.

Σε ποια σημεία υπερτερεί το κάθε CMS έναντι του άλλου;

Opensource CMS

  • SEO friendly

  • Χαμηλό κόστος, καθώς δεν απαιτείται ιδιαίτερη δουλειά από πλευράς development

  • Γρήγορο στην υλοποίηση

  • Πολλά λειτουργικά λάθη, τα λεγόμενα στην ορολογία των developers “bugs”, έχουν διορθωθεί καθώς ο κώδικας είναι προσβάσιμος από τον καθένα και η εκτεταμένη χρήση τους έχει φέρει πολλές φορές τους developers αντιμέτωπους με προβλήματα τα οποία καλούνται να επιλύσουν

Custom CMS

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

  • είναι επεκτάσιμο και μπορεί πολύ εύκολα να προσαρμοστεί σε οποιαδήποτε νέα ανάγκη εμφανιστεί στη διάρκεια του χρόνου

  • υπάρχουν λιγότερες πιθανότητες να συμβεί μια κακόβουλη επίθεση σε αυτό καθώς ο κώδικας του δεν είναι προσβάσιμος

Τι να προτιμήσω;

Εάν η ιστοσελίδα σας θέλετε να είναι ελκυστική στον επισκέπτη και να απευθύνεται 100% στις ανάγκες της επιχείρησής σας είναι πολύ σημαντικό να έχετε ένα Content Management System που να είναι σχεδιασμένο και προσαρμοσμένο ακριβώς σε αυτές. Ο ανταγωνισμός στο web είναι πλέον πολύ δύσκολος και οι ελπίδες για μια επιχείρηση που διαθέτει μια «κοινή» ιστοσελίδα να ξεχωρίσει στο χώρο είναι ελάχιστες αν όχι μηδαμινές. Ακόμα και τα πλεονεκτήματα του opensource CMS μπορούν να ισοσταθμιστούν αν γίνει σωστή δουλειά στο development.

2 comments:

  1. Xenofon PapadopoulosApril 10, 2012 at 3:42 PM

    Τα 2 πρώτα θετικά σημεία του Custom CMS ισχύουν και για τα OpenSource. Τίποτα δεν εμποδίζει έναν developer να αλλάξει ένα open source CMS είτε μέσω plugin είτε μέσω core development, ΑΝ χρειαστεί. Στην περίπτωση που δεν χρειαστεί (που είναι και το πιο συνηθισμένο) δεν χρειάζεται να κάνεις τίποτα.

    Το 3ο σημείο βασίζεται στην έννοια της ασφάλειας μέσω της απόκρυψης (security through obscurity) που εδώ και χρόνια απορρίπτεται από τους περισσότερους ειδικούς στα θέματα της ασφάλειας (http://en.wikipedia.org/wiki/Security_through_obscurity)

    Θεωρώ ότι τα CMS είναι πλέον commodity software και δεν υπάρχει κανένας απολύτως τεχνικός λόγος να αναπτύξει κανείς custom σύστημα. Φυσικά υπάρχουν μή τεχνικοί λόγοι, με βασικό το να κλειδώσεις τον πελάτη στο σύστημά σου και να κερδίζεις από το support.

    ReplyDelete
  2. Συγγνώμη για την καθυστέρηση. Πολύ δουλειά και μεγάλη η συζήτηση..

    Το Core development σε κάποιο open source cms έχει μεγάλη πιθανότητα να δημιουργήσει θέμα σε μελλοντικά updates καθώς και σε ήδη υπάρχων Plugins / Modules… Είναι ένα θέμα που χρειάζεται προσοχή και η περίπτωση ασυμβατότητας του μερικές φορές δεν μπορεί να αποφευχθεί.

    Το security through obscurity δεν πρέπει να θεωρείται ως ο μοναδικός παράγοντας ασφάλειας, αλλά ως ένα επιπλέον επίπεδο το οποίο σίγουρα δεν είναι καταλυτικό αλλά στα θέματα ασφαλείας όπου τίποτα δεν είναι απόλυτο, τα επιπλέον μέτρα και επίπεδα ασφάλειας υπάρχουν για να δυσκολεύουν την «πρόσβαση». Όσα πιο πολλά επίπεδα προστασίας, τόσο το καλύτερο. Σίγουρα το να υπάρχει security through obscurity ως έξτρα επίπεδο ασφάλειας είναι καλύτερα από το να μην υπάρχει, όχι όμως ότι θα βασιζόμαστε σε αυτό. Και μια ρητορική ερώτηση: Υπάρχουν πολλά τραπεζικά συστήματα ανοιχτού κώδικα;

    Τέλος, πιάνοντας ένα θέμα ασφάλειας και επέκτασης ενός Open Source CMS. Έχουμε το εξής απλό σενάριο: Ο πελάτης μας ζητάει μια λειτουργία καινούργια που είναι και σχετικά σπάνια. Το αποτέλεσμα είναι ότι η διαθεσιμότητα σε Plugins / Modules που ανταποκρίνονται στις ανάγκες αυτές του πελάτη είναι χαμηλή. Έτσι υπάρχουν ένα, το πολύ δύο Modules για την λειτουργία που ζήτησε ο πελάτης. Γίνεται η επιλογή και η εγκατάσταση της νέας λειτουργίας μέσω του σπάνιου αυτού module. Το πρόβλημα έρχεται μετά. Τι συμβαίνει στην περίπτωση που το Module αυτό επειδή σπανίζει η χρήση του, ΔΕΝ έχει ελεγχθεί επαρκώς σε θέματα ασφαλείας και απόδοσης; Τι θα συμβεί ένα μελλοντικά εμφανιστεί κάποιο exploit στον κώδικα του συγκεκριμένου plugin αλλά δεν δημοσιευτεί ώστε να διορθωθεί; Ο exploiter / hacker θα μπορεί να εκμεταλλεύεται το exploit για όσο θέλει μέχρι να κοινοποιηθεί στην κοινότητα και να διορθωθεί. Και καλός αν διορθωθεί, τι θα συμβεί εάν ο αρχικός συγγραφέας του Module δεν έχει χρόνο να ασχοληθεί πια και τα security holes παραμένουν unpatched;

    Πολλές φορές τα σπάνια Modules μένουν παρατημένα. Ο αρχικός συγγραφέας τους δεν ασχολείται με την συντήρηση τους με αποτέλεσμα μέχρι και τα γνωστοποιημένα exploits να μην διορθώνονται καθώς και να δημιουργούνται ασυμβατότητες με νεότερες εκδόσεις του CMS.

    Οπότε φθάνουμε σε ένα άλλο «δίλλημα». Εάν κάνουμε update το CMS core, το module μας δεν θα λειτουργεί διότι δεν φρόντισε η κοινότητα να το αναβαθμίσει. Εάν δεν κάνουμε update το CMS core, ολόκληρη η σελίδα μας παραμένει εκτεθειμένη με τα unpatched exploits. Μπορούμε φυσικά να αφιερώσουμε χρόνο στην αναβάθμιση του Module από εμάς. Κάτι που απαιτεί ανάλογα με την πολυπλοκότητα του module από μερικές έως και αρκετές ώρες. Ας υπολογίσουμε τώρα τι σημαίνει αυτό εάν το συγκεκριμένο plugin έχει χρησιμοποιηθεί σε δεκάδες σελίδες. Μήπως τελικά ο χρόνος που θα αφιερώσουμε ΕΑΝ τελικά το αποφασίσει η εταιρία (κάτι που σπανίζει), θα είναι περισσότερος μακροπρόθεσμα;

    Για τους παραπάνω λόγους, πολλές εταιρίες ΔΕΝ αναβαθμίζουν τα CMS Cores και Plugins σε όλες τους τις σελίδες παρά μόνο στις σελίδες υψηλής επισκεψιμότητας… Φυσικά ο hacker που θέλει να στοχεύσει σε συγκεκριμένα exploits δεν θα το κάνει χειροκίνητα, υπάρχουν ειδικά utilities που «σκανάρουν» τα διαδίκτυο για ιστοσελίδες με παλαιές εκδόσεις συγκεκριμένων CMS / Plugins με μοναδικό σκοπό την εύρεση vulnerabilities.

    Σίγουρα δεν υπάρχουν τέλειες λύσεις, αλλά πρέπει να ζυγίζουμε τα θετικά και τα αρνητικά. Θέλουμε ιστοσελίδες «του κιλού» με ότι αυτό συνεπάγεται ή θέλουμε κάτι το οποίο μακροπρόθεσμα θα αποδώσει με περισσότερη ασφάλεια τις λειτουργίες του;

    Antonis Karagiannis

    ReplyDelete