permissions του folder

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
marina73
Δημοσιεύσεις: 30
Εγγραφή: 20 Μαρ 2008 16:43

permissions του folder

Δημοσίευση από marina73 » 28 Απρ 2008 22:04

Εχω δημιουργησει μια βαση δεδομενων για upload images.
Οταν το βαζω στο server που φιλοξενει τη σελιδα μου για να δουλεψει πρεπει να μετατρεψω ta permissions του folder που εχει τα images σε 777.
Γνωριζω οτι αυτο ειναι επικυνδυνο για το security της σελιδας.
Ομως δε γνωριζω τι αλλο να κανω.
Μηπως μπορειτε να με βοηθησετε?
Ευχαριστω

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

permissions του folder

Δημοσίευση από Rapid-eraser » 29 Απρ 2008 10:34

Καταρχήν χρόνια πολλά.

Να δούμε τι είναι αυτά τα μαγικά νούμερα του chmod κοινός το 777 για να βγάλουμε άκρη.

Αρχικά να σου πω ότι στα Unix και Unix-like ( ακα linux) τα αρχεία έχουν κάποια permissions που χαρακτηρίζουν το κάθε αρχείο ξεχωριστά.

Ονομαστικά αυτά είναι: read – write – execute ( ανάγνωση – εγγραφή – εκτέλεση)

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

1 --x execute
2 -w- write
3 -wx write and execute
4 r-- read
5 r-x read and execute
6 rw- read and write
7 rwx read, write and execute

Ένα επίσης χαρακτηριστικό των αρχείων όσον αφορά τα permissions είναι σε ποιους απευθύνεται. Εκεί υπάρχουν 3 κύριες καταστάσεις (UGO = User, Group, Other)

User είναι ο δημιουργός του αρχείου,
Group είναι οι χρήστες που βρίσκονται στο group του δημιουργού (πχ users)
Other είναι όλοι οι άλλοι πλην του group του owner.

Κάνοντας συνδυασμό των παραπάνω μπορείς να περιορίσεις την πρόσβαση που θα έχουν οι υπόλοιποι χρήστες πάνω στα αρχεία σου.

Που είναι το πρόβλημα όμως ε;

Η php όπως θα έχεις ακούσει τρέχει στον server με διάφορους τρόπους:
- ISAPI module ( module του apache πχ)
- CGI (μέσω του cgi-bin)
- Fast CGI
- CLI

Τις περισσότερες φορές η php βρίσκεται εγκατεστημένη μέσω ISAPI σαν module του apache για να εκμεταλλευτεί την ταχύτητα που προσφέρει το παραπάνω.
Αυτό σημαίνει πως η php τρέχει με ότι δικαιώματα έχει ο apache και όχι του user σου.
Κατ’ επέκταση κάθε αρχείο που διαχειρίζεται και δημιουργεί παίρνει αυτόματα τα δικαιώματα του apache. Τώρα ένα αρχείο για να το κάνει serve ο apache πρέπει να έχει δικαίωμα να το διαβάσει τουλάχιστον. Επομένως αν δεν χρειάζεται να το εκτελέσει ή να το αλλοιώσει δεν του χρειάζονται παραπάνω δικαιώματα.

Αυτό μας λέει ότι user 7 – group 7 – other 7 είναι λάθος λόγω του ότι σε ένα αρχείο εικόνας δεν χρειάζεται εκτέλεση και αλλοίωση.
Κατά το http upload το αρχείο παίρνει σαν owner και group αυτά του apache.
Επειδή εσύ σαν χρήστης δεν είσαι στο group του apache για να το διαχωριστείς πρέπει να περάσεις στο other δικαιώματα γενικά, κάτι που καθιστά κενό ασφαλείας γενικότερα.

Επομένως το http upload σε πρώτη φάση δημιουργεί ένα κενό ασφαλείας ούτος ή άλλος. Υπάρχουν τεχνικές που μπορούν να διορθώσουν αυτό το πρόβλημα όπως το ftp upload – over http δηλαδή να ανεβάσεις το αρχείο με http και στην συνέχεια να το ξαναπεράσεις τοπικά μέσω ftp με το guid του χρήστη σου (αυτό χρειάζεται γιατί απαιτείτε ένα suid αρχείο να κάνει το chown).

Άρα σωστό και λάθος chmod δεν υπάρχει , εξαρτάται από την περίσταση και το γενικότερο setup που έχει το σύστημά σου.

Στην περίπτωση του image – http upload – isapi module χωρίς χρήση extra κώδικα το ποιο ασφαλές chmod (σύμφωνα με την λογική του όσο λιγότερα δικαιώματα δίνεις τόσο μεγαλύτερη ασφάλεια παρέχεις) εγώ θα πρότεινα
User (RW- / --- / R--) - 604

Αυτό σημαίνει πως κλειδώνεις απέξω και τον εαυτό σου.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

permissions του folder

Δημοσίευση από cherouvim » 29 Απρ 2008 10:53

Ωραία ανάλυση, και συγχαρητήρια για το switch στα Ελληνικά ;)

marina73
Δημοσιεύσεις: 30
Εγγραφή: 20 Μαρ 2008 16:43

permissions του folder

Δημοσίευση από marina73 » 29 Απρ 2008 12:35

Καλημερα και χρονια πολλα
Τελικα καταφερα να φτιαξω το database ελειπε το php_gd extension απο το php configuration epikonvnhsa me ton administartor και τωρα ειναι ενταξει.
Το προβλημα τωρα ειναι οτι δεν μπορω να φτιαξω τα thumbnail
Oi fvtografiew einai entagei
Επειδη ειμαι αρχαρια στο php θα σας στειλω τα λινκ οπου ειναι τα folder:
1) album /home/mkli73/images/album/
2) gallery /home/mkli73/images/gallery/
3)thumbnail /home/mkli73/images/gallery/thumbnail/
Μαζι σας στελνω το folder με τα αρχεια.
Αν μπορειτε να ριξετε μια ματια και να μου πειτε που κανω λαθος?
Ευχαριστω Πολυ
Συνημμένα
image-gallery.zip
(20.85 KiB) Μεταφορτώθηκε 452 φορές

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

permissions του folder

Δημοσίευση από ideal » 04 Αύγ 2011 13:32

Χρειάζομαι κι εγώ λίγη βοήθεια εδώ σχετικά με τα permissions.
Ίσως δεν καταννοώ καλά τους ορισμούς του users και του others.
Χρησιμοποιώ 2 διαφορετικά domain. Στο πρώτο έχω το αρχείο που θα κάνω include (ADomain.gr/includes.php) και στο δεύτερο έχω το αρχείο που τρέχει ο χρήστης (BDomain/index.php).
Θέλω να υλοποιείται μόνο το include από το B Domain και να μην τρέχει απευθείας το script μέσω Browser. Να μπλοκάρω δηλαδή την πρόσβαση.

Προσπάθησα να το κλειδώσω με htaccess, αλλά απαγορεύει την πρόσβαση και στο include.
Προσπαθώ να κλειδώσω την πρόσβαση μέσω chmod, αλλά κάτι κάνω λάθος.
Στην αρχή έδωσα chmod 400 και μετά προσπάθησα με chmod 004.

Μήπως τα permissions που δίνω δεν είναι σωστά;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης