doctorized Δημοσ. 15 Ιουλίου 2021 Δημοσ. 15 Ιουλίου 2021 Έχω φτιάξει μια σελίδα στην οποία έχω προσθέσει φόρμα επικοινωνίας. Θέλω να προστατέψω τα στοιχεία που κάνω login στον email server. Δοκίμασα με διάφορα Dotenv για να φορτώσω τα στοιχεία αυτά αλλά κανένα δεν δούλεψε. Κάποια απατούν εγκατάσταση μέσω κονσόλας και ο πάροχος μου δεν έχει κονσόλα διαθέσιμη στον απλό χρήστη, όπως εγώ. Άλλα απαιτούν ρυθμίσεις στον Composer. Δεν ξέρω αν έχω. Στο plesk έχω έναν φάκελο composer δίπλα στο httpdocs αλλά είναι άδειος. Γνώσεις πάνω στο θέμα δεν έχω πολλές. Μπορεί κάποιος να μου προτείνει κάποιο dotenv το οποίο να μη θέλει εγκατάσταση ή composer, να το βάλω εγώ σε φάκελο όπως έκανα με το phpmailer που απλώς έκανα εξαγωγή των αρχείων από το zip που κατέβασα από github, λίγα use τάδε και require τάδε μέσα στο php μου και τέλος.
k33theod Δημοσ. 17 Ιουλίου 2021 Δημοσ. 17 Ιουλίου 2021 Τι εννοεις Dotenv ? Το αρχειο ρυθμισεων του Laravel?
doctorized Δημοσ. 23 Ιουλίου 2021 Μέλος Δημοσ. 23 Ιουλίου 2021 Στις 17/7/2021 στις 7:53 ΜΜ, k33theod είπε Τι εννοεις Dotenv ? Το αρχειο ρυθμισεων του Laravel? Όχι, εννοώ κάτι σαν αυτό: https://github.com/vlucas/phpdotenv το οποίο βοηθά να φορτώσεις δικά σου environment variables. Η χρήση που το θέλω είναι για να φορτώσω στοιχεία σύνδεσης σε σερβερ από php (url, user name, password). Αντί να τα έχω χύμα μέσα στο php αρχείο τα βάζεις σε άλλο αρχείο και το φορτώνεις. Τελικά, βρήκα με πολύ κόπο έναν απλό κώδικα που δουλεύει. Συνεχίζω βέβαια να αναλογίζομαι πόσο ασφαλή είναι τα στοιχεία ως απλό κείμενο σε ένα αρχείο το οποίο φορτώνεται. Ποιος μου λέει ότι ένα bot δεν θα δει ότι φορτώνω το αρχείο και θα το φορτώσει και το bot να δει τι παίζει;
t(o.ot) Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 (επεξεργασμένο) Το αρχείο είναι όσο ασφαλής είναι ο webserver σου. Εφόσον δεν κάνεις echo τις μεταβλητές πουθενά και η php σου εκτελείται κανονικά, ο μόνος τρόπος να πάρει κάποιος τις τιμές είναι να αποκτήσει πρόσβαση στον σέρβερ σου ή να έχεις κάνει κάποιο καταστροφικό λάθος στον κώδικά σου ή το configuration του webserver σου (πχ να κάνεις expose το directory listing, να κάνεις serve ανεκτέλεστα php αρχεία στον browser ή το application σου να τυπώνει source code με κάποιο τρόπο). Για ένα βήμα παραπέρα, σιγουρεύεσαι ότι το config.php σου είναι εκτός του web server root, οπότε μόνο με πρόσβαση στον σέρβερ μπορεί κάποιος να το ανακτήσει (από το οποίο δεν προστατεύεσαι με καμία λύση, όταν κάποιος αποκτήσει πρόσβαση στο environment, είτε με cat config.php, είτε με export μπορεί να δει τα token σου). Το αν θα βάλεις τις τιμές αυτές σε .env ή σε κάποιο config.php δεν έχει καμία απολύτως διαφορά. Προσωπικά, θα προτιμούσα την απλότητα του config.php καθώς ξέρεις ότι παίζει παντού και πάντα. Σε κάθε περίπτωση να σιγουρευτείς ότι όποιο αρχείο έχει τις μεταβλητές σου δεν το κάνει track το git (πχ βάλε config.php στο .gitignore). Συνηθίζεται να βάζεις ένα template (πχ config.template.php) στη θέση του με άδειες τιμές το οποίο το μετονομάζεις είτε χειροκίνητα είτε μέσω του ci/cd pipeline σου σε κάθε καινούργιο environment. Επεξ/σία 23 Ιουλίου 2021 από t(o.ot)
doctorized Δημοσ. 24 Ιουλίου 2021 Μέλος Δημοσ. 24 Ιουλίου 2021 Στις 23/7/2021 στις 9:47 ΠΜ, t(o.ot) είπε Το αρχείο είναι όσο ασφαλής είναι ο webserver σου. Εφόσον δεν κάνεις echo τις μεταβλητές πουθενά και η php σου εκτελείται κανονικά, ο μόνος τρόπος να πάρει κάποιος τις τιμές είναι να αποκτήσει πρόσβαση στον σέρβερ σου ή να έχεις κάνει κάποιο καταστροφικό λάθος στον κώδικά σου ή το configuration του webserver σου (πχ να κάνεις expose το directory listing, να κάνεις serve ανεκτέλεστα php αρχεία στον browser ή το application σου να τυπώνει source code με κάποιο τρόπο). Για ένα βήμα παραπέρα, σιγουρεύεσαι ότι το config.php σου είναι εκτός του web server root, οπότε μόνο με πρόσβαση στον σέρβερ μπορεί κάποιος να το ανακτήσει (από το οποίο δεν προστατεύεσαι με καμία λύση, όταν κάποιος αποκτήσει πρόσβαση στο environment, είτε με cat config.php, είτε με export μπορεί να δει τα token σου). Το αν θα βάλεις τις τιμές αυτές σε .env ή σε κάποιο config.php δεν έχει καμία απολύτως διαφορά. Προσωπικά, θα προτιμούσα την απλότητα του config.php καθώς ξέρεις ότι παίζει παντού και πάντα. Σε κάθε περίπτωση να σιγουρευτείς ότι όποιο αρχείο έχει τις μεταβλητές σου δεν το κάνει track το git (πχ βάλε config.php στο .gitignore). Συνηθίζεται να βάζεις ένα template (πχ config.template.php) στη θέση του με άδειες τιμές το οποίο το μετονομάζεις είτε χειροκίνητα είτε μέσω του ci/cd pipeline σου σε κάθε καινούργιο environment. Οι μεταβλητές περνάνε στο phpmailer για αποστολή email όταν κάποιος συμπληρώσει τη φόρμα επικοινωνίας. Μέσα από το plesk δεν βλέπω ούτε config.php ούτε php.ini.
t(o.ot) Δημοσ. 25 Ιουλίου 2021 Δημοσ. 25 Ιουλίου 2021 Εννοώ να βάλεις ένα δικό σου mailer.config.php με κάποιες μεταβλητές μέσα πχ: <?php $MAILER_HOST = 'smtp.myserver.com'; $MAILER_PORT = 587; $MAILER_USERNAME = '[email protected]'; $MAILER_PASSWORD = 'password'; ?> Το οποίο θα κάνεις θα κάνεις require στην εφαρμογή σου και θα διαβάσεις τις τιμές των μεταβλητών: <?php require('./mailer.config.php'); $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = $MAILER_HOST; $mail->Port = $MAILER_PORT; $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->SMTPAuth = true; $mail->Username = $MAILER_USERNAME; $mail->Password = $MAILER_PASSWORD; // more code here ?> Με αυτό τον τρόπο το πρώτο αρχείο που έχει τα sensitive values το βάζεις στο .gitignore, το υπόλοιπο το κάνεις commit κανονικά. Ο webserver σου δεν θα επιστρέφει τις τιμές όπως και νά'χει (εφόσον όπως έγραψα στο προηγούμενο μήνυμα είναι σεταρισμένος όπως θά 'πρεπε).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα