Κατά πρώτον, η διαφορά ανάμεσα στο /var/www/first.php και το /var/www/mypage/first.php είναι οτι το πρώτο αφορά μια σελίδα που βρίσκεται στον Apache, και το δεύτερο αφορά μια σελίδα που βρίσκεται σε έναν υποφάκελο του Apache.
Αν αφήσεις τον server σου στην πρώτη μορφή τότε θα έχεις ένα και μοναδικό site.
Αν τον φτιάξεις με την δεύτερη μορφή μπορείς να έχεις πολλά sites.
Το πως άστο για αργότερα για να μην μπερδευτείς.
Πάμε στο θέμα μας...
Οταν ένας χρήστης δίνει στον browser το
http://www.yamaha τότε ο Apache τον ανακατευθύνει αυτόματα στον φάκελο /var/www/yamaha/
Αν δώσει κάτι σε στύλ /var/www/yamaha/ θα δει απλώς ένα error 404 File not found. Που σημαίνει οτι από τον brower δεν μπορεί να δεί οτι υπάρχει "πάνω" από τον φάκελο yamaha. Μόνο με ftp πρόγραμμα. Γι αυτό και τα ports μαζί με τους ftp φακέλους είναι τα πρώτα που "θωρακίζονται" σε έναν server. Γι αυτό επίσης τα ftp προγράμματα πρέπει να ανιχνέυονται συνέχεια για trojan, virus κ.λ.π.
Αρα λοιπόν ο επίδοξος χάκερ θα πρέπει να βρει άλλον τρόπο να "μπει" στον server. Πράγμα που, όπως είπαμε, είναι πιο δύσκολο.
Τώρα, μην σε μπερδεύει το r στα αρχεία.
Η ανάγνωση είναι ανάγνωση και τίποτε περισσότερο. Είναι αρκετή ώστε η html - php - asp να διαβάσει και να εκτελέσει ένα αρχείο.
Αυτό που θα πρέπει να αποφεύγεις είναι το w και το x.
Εκτός απροόπτου αυτά τα δικαιώματα δίνονται μόνο σε συγκεκριμένους φακέλους. Συνήθως σε αυτούς που ο χρήστης πρέπει να κάνει upload ή download ένα αρχείο.
Αυτό που σου λέω εγώ είναι λίγο διαφορετικό.
Εστω οτι έχεις το αρχείο first.php.
Μέσα σε αυτό έχεις σε κάποιο σημείο τα:
$host = "myhost";
$user = "me";
$password = "123";
$database = "my_db";
Αν λοιπόν για οποιοδήποτε λόγο κάποιος δει αυτές τις λεπτομέρειες τα πράγματα είναι σκούρα.
Για ποιό λόγο να δει αυτές τις λεπτομέρειες;
Γιατί έχεις ξεχάσει τα errors ανοιχτά και δημιουργήθηκε πρόβλημα στην php ή/και mysql και τα έβγαλε όλα φόρα παρτίδα.
Γιατί κάποιος έτρεξε κάποια μυστήρια εντολή στο address bar (ναι, όσο κι αν ακούγεται παράξενο αν γράψεις μια mysql εντολή στην address bar θα εκτελεστεί αν δεν έχεις πάρει τα μέτρα σου! λέγεται mysql injection).
Από κάποιο λάθος στην εγκατάσταση μπορεί να σου στείλει το αρχείο σαν plain txt.
Υπάρχουν κάμποσοι λόγοι που μπορεί κάποιος να σου "κλέψει" το passsword.
Είναι τόσο εύκολο; Ευτυχώς όχι.
Είναι πιθανόν; Δυστυχώς ναι.
Και φαντάσου στη βάση του site να κρατούνται πιστωτικές, λογαριασμοί κ.λπ. κ.λ.π.
Την βάψατε όλοι μαζί και ο καθένας χώρια...
Τι μπορείς να κάνεις;
Αντικειμενοστραφής προγραμματισμός
class My_Login {
private function My_Login_Data() {
$host = "myhost";
$user = "me";
$password = "123";
$database = "my_db";
}
}
+ encrypted passwords
+ το first.php πάνω από το document root.
Για σημαντικές συναλαγές χρησιμοποιούνται και SSL (Secure Socket Layers)
Υπερβολικό;
Πιθανώς, πάντως ή το κάνεις ή μας λες τι τσιγάρα καπνίζεις να σου φέρνουμε-
Μην ξεχνάς οτι οι "κλέφτες" είναι πάντα ένα βήμα μπροστά απο την "αστυνομία" και παρ' όλα αυτά τα μέτρα πάλι δημιουργούνται προβλήματα.
9/10 λόγο αφέλειας, ή βιασύνης ή αφηρημάδας.
Επαναλαμβάνω οτι όλα αυτά θα τα δείς και θα τα κατανοήσεις στην πορεία.
Δεν θα στα έλεγα αλλά αυτό το θέμα είναι πολύ σημαντικό.
Κάνε συνήθεια αυτή την πρακτική ακόμα κι αν δεν ξέρεις τι και πως.