PHP-File Inclusion
Λειτουργίες που αφορούν PHP-File Inclusion – Συμπερίληψη αρχείων
Μπορείτε να συμπεριλάβετε το περιεχόμενο ενός αρχείου PHP σε άλλο αρχείο PHP πριν το εκτελέσει ο διακομιστής. Υπάρχουν δύο συναρτήσεις PHP που μπορούν να χρησιμοποιηθούν για να συμπεριλάβουν ένα αρχείο PHP σε ένα άλλο αρχείο PHP.
- Η συνάρτηση include().
- Η συνάρτηση require().
Αυτό είναι ένα δυνατό σημείο της PHP που βοηθά στη δημιουργία συναρτήσεων, κεφαλίδων, υποσέλιδων ή στοιχείων που μπορούν να επαναχρησιμοποιηθούν σε πολλές σελίδες.
Αυτό θα βοηθήσει τους σχεδιαστές ιστοσελίδων να κάνουν εύκολη την αλλαγή της διάταξης πλήρους ιστότοπου με ελάχιστη προσπάθεια. Εάν απαιτείται οποιαδήποτε αλλαγή, αντί να αλλάξετε χιλιάδες αρχεία, απλώς αλλάξτε το συμπεριλαμβανόμενο αρχείο.
Η συνάρτηση include()
Η συνάρτηση include() παίρνει όλο το κείμενο σε ένα καθορισμένο αρχείο και το αντιγράφει στο αρχείο που χρησιμοποιεί τη συνάρτηση include(). Εάν υπάρχει οποιοδήποτε πρόβλημα στη φόρτωση ενός αρχείου, τότε η συνάρτηση include() δημιουργεί μια προειδοποίηση αλλά το σενάριο θα συνεχίσει να εκτελείται.
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα κοινό μενού για τον ιστότοπό σας. Στη συνέχεια δημιουργήστε ένα αρχείο menu.php με το ακόλουθο περιεχόμενο.
<a href="http://www.tutorialspoint.com/index.htm">Home</a> - <a href="http://www.tutorialspoint.com/ebxml">ebXML</a> - <a href="http://www.tutorialspoint.com/ajax">AJAX</a> - <a href="http://www.tutorialspoint.com/perl">PERL</a> <br />
Τώρα δημιουργήστε όσες σελίδες θέλετε και συμπεριλάβετε αυτό το αρχείο για να δημιουργήσετε κεφαλίδα. Για παράδειγμα τώρα το αρχείο test.php μπορεί να έχει το ακόλουθο περιεχόμενο.
<html> <body> <?php include("menu.php"); ?> <p>This is an example to show how to include PHP file!</p> </body> </html>
Θα παράγει το ακόλουθο αποτέλεσμα:
Η συνάρτηση require()
Η συνάρτηση require() παίρνει όλο το κείμενο σε ένα καθορισμένο αρχείο και το αντιγράφει στο αρχείο που χρησιμοποιεί τη συνάρτηση συμπερίληψης. Εάν υπάρχει οποιοδήποτε πρόβλημα στη φόρτωση ενός αρχείου, τότε η συνάρτηση require() δημιουργεί ένα μοιραίο σφάλμα και σταματά την εκτέλεση του σεναρίου.
Επομένως, δεν υπάρχει διαφορά στις require() και include() εκτός από το ότι χειρίζονται συνθήκες σφάλματος. Συνιστάται η χρήση της συνάρτησης require() αντί της include(), επειδή τα σενάρια δεν πρέπει να συνεχίσουν να εκτελούνται εάν λείπουν αρχεία ή έχουν λανθασμένη ονομασία.
Μπορείτε να δοκιμάσετε να χρησιμοποιήσετε το παραπάνω παράδειγμα με τη συνάρτηση require() και θα δημιουργήσει το ίδιο αποτέλεσμα. Αλλά αν προσπαθήσετε να ακολουθήσετε δύο παραδείγματα όπου δεν υπάρχει αρχείο, τότε θα έχετε διαφορετικά αποτελέσματα.
<html> <body> <?php include("xxmenu.php"); ?> <p>This is an example to show how to include wrong PHP file!</p> </body> </html>
Αυτό θα δώσει το ακόλουθο αποτέλεσμα:
This is an example to show how to include wrong PHP file!
Τώρα ας δοκιμάσουμε το ίδιο παράδειγμα με τη συνάρτηση require().
<html> <body> <?php require("xxmenu.php"); ?> <p>This is an example to show how to include wrong PHP file!</p> </body> </html>
Αυτή η εκτέλεση του αρχείου σταματά και δεν εμφανίζεται τίποτα.
ΣΗΜΕΙΩΣΗ − Μπορεί να λάβετε απλά προειδοποιητικά μηνύματα ή μοιραία μηνύματα σφάλματος ή τίποτα απολύτως. Αυτό εξαρτάται από τη διαμόρφωση του διακομιστή PHP.
Τι είναι τα File Inclusion Vulnerabilities;
Τα τρωτά σημεία της συμπερίληψης αρχείων συχνά επηρεάζουν εφαρμογές Ιστού που βασίζονται σε χρόνο εκτέλεσης δέσμης ενεργειών και εμφανίζονται όταν μια εφαρμογή Ιστού επιτρέπει στους χρήστες να υποβάλλουν στοιχεία σε αρχεία ή να ανεβάζουν αρχεία στον διακομιστή. Συχνά βρίσκονται σε κακογραμμένες εφαρμογές.
Τα File Inclusion Vulnerabilities επιτρέπουν στον εισβολέα να διαβάζει και μερικές φορές να εκτελεί αρχεία στον διακομιστή-θύμα ή, όπως συμβαίνει με την Απομακρυσμένη συμπερίληψη αρχείων, να εκτελεί κώδικα που φιλοξενείται στον υπολογιστή του εισβολέα.
Ένας εισβολέας μπορεί να χρησιμοποιήσει απομακρυσμένη εκτέλεση κώδικα για να δημιουργήσει ένα κέλυφος ιστού στον διακομιστή και να χρησιμοποιήσει αυτό το κέλυφος ιστού για παραμόρφωση ιστότοπου.
Για θέματα ασφάλειας ιστοτόπων σας σας συστήνουμε το πρόγραμμα σπουδών του Πανεπιστημίου Αιγαίου που μπορείτε να δείτε εδώ
Μπορείτε να ενημερωθείτε για την php στο σχετικό θεματικό τμήμα του blog μας που μπορείτε να δείτε εδώ.
Αν θέλετε να μάθετε περισσότερα για την κατασκευή ιστοσελίδας παρακολουθήστε το σεμινάριο Web Design και άλλα σεμινάρια εξ αποστάσεως από το Εργαστήριο ΤΠΕ Ήρων.
Πηγή: tutorialspoint.com