Πολεμικά Παίγνια: OTW Natas #1

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

Πηγή: JMediaGroup.net
Πηγή: JMediaGroup.net

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

Πηγή: OverTheWire.org
Πηγή: OverTheWire.org

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

Πηγή: OverTheWire.org
Πηγή: OverTheWire.org

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

Πηγή: InfoWorld.com
Πηγή: InfoWorld.com

Ακόμα και με αυτό το περιορισμό, υπάρχουν τουλάχιστον δύο τρόποι να δούμε τη σελίδα σε μορφή HTML. Ο πιο απλός, είναι αντί για δεξί κλικ να χρησιμοποιήσουμε τη συντόμευση CTRL+U που προσφέρει την ίδια ακριβώς λειτουργία. Προφανώς, αυτό θα μας δείξει αυτό που θέλουμε και όπως βλέπετε παρακάτω, και σε αυτή τη περίπτωση ο κωδικός του επόμενου επιπέδου είναι κρυμμένος σε ένα σχόλιο μέσα στην HTML της σελίδας.

Πηγή: Προσωπικό αρχείο
Πηγή: Προσωπικό αρχείο

Ο δεύτερος τρόπος είναι απενεργοποιώντας την εκτέλεση της JavaScript στο πρόγραμμα πλοήγησης μας. Ανάλογα με το πρόγραμμα περιήγησης ιστού που χρησιμοποιείτε αυτό θα διαφέρει αλλά καθώς οι περισσότεροι χρήστες του διαδικτύου χρησιμοποιούν Firefox, θα δείξουμε αυτό το παράδειγμα. Μπορείτε να εγκαταστήσετε στο Firefox τη μπάρα προγραμματιστή ιστού. Ανάμεσα στις άλλες επιλογές της, αυτή η μπάρα έχει και την επιλογή απενεργοποίησης της JavaScript με ένα κλικ.

Πηγή: Προσωπικό αρχείο
Πηγή: Προσωπικό αρχείο

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

<body oncontextmenu="javascript:alert('right clicking has been blocked!');return false;">

Αυτό είναι ένας συνδυασμός από HTML και JavaScript. Η ετικέτα (tag) «body» είναι HTML και ορίζει το περιεχόμενο από το κυρίως σώμα της σελίδας. Βέβαια, σε αυτή τη περίπτωση βλέπουμε ότι το μόνο που ορίζει είναι ότι το «oncontextmenu» ισούται με κάποιο κώδικα σε JavaScript. Όταν ο περιηγητής μας εκτελεί κώδικα JavaScript έχει μία σειρά από γεγονότα όπως την κίνηση του ποντικιού, τη πληκτρολόγηση, κτλ. Ένα από αυτά τα γεγονότα (events) είναι και το «oncontextmenu», δηλαδή αν προσθέσουμε κενά, «on context menu» (μέσα στο μενού περιεχομένων). Όταν ο περιηγητής αντιληφθεί ότι ο χρήστης προσπαθεί να ανοίξει το μενού περιεχομένων θα εκτελέσει οτιδήποτε έχει οριστεί σε αυτό το event. Σε αυτή τη περίπτωση, θα εκτελέσει τον εξής κώδικα JavaScript όπως βλέπουμε από το παραπάνω απόσπασμα.

javascript:alert('right clicking has been blocked!');
return false;

Το Ελληνικό ερωτηματικό χρησιμοποιείται ως διαχωριστικό ανάμεσα σε εντολές της γλώσσας. Άρα εδώ, έχουμε δύο εντολές. Η πρώτη είναι η javascript:alert() η οποία πρακτικά λέει: Από τη γλώσσα προγραμματισμού JavaScript κάλεσε τη συνάρτηση alert() και ως παράμετρο δώσε της το κείμενο «right clicking has been blocked!». Η συνάρτηση alert() το μόνο που κάνει είναι να εμφανίζει ένα παραθυράκι με ότι περιεχόμενο της έχει οριστεί. Η δεύτερη εντολή διατάζει το πρόγραμμα να επιστρέψει (return) από εκεί όπου κλήθηκε δίνοντας το αποτέλεσμα «false», δηλαδή ότι απέτυχε η εκτέλεση. Με αυτό το τρόπο απλώς θα εμφανιστεί το ακόλουθο παράθυρο χωρίς να προχωρήσει και στο άνοιγμα του μενού περιεχομένων.

Πηγή: OverTheWire.org
Πηγή: OverTheWire.org

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

Γράψτε τα σχόλια σας εδώ...

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s