wysyłanie maila a hasło w skrypcie PHP

0

Mam stronkę, na której jest formularz. Chcę, by po jego uzupełnieniu była wysyłana tabelka z potwierdzeniem na 2 adresy email. Konieczne jest tutaj uwierzytelnianie, więc użyję biblioteki PHPMailer. Niby fajnie, ale nie podoba mi się to, że w kodzie PHP będzie trzymane hasło do poczty.
Niby skrypt PHP jest ukryty, niby do wysyłania użyję specjalnie utworzonej skrzynki, ale dalej mi to się nie podoba. Co prawda hasło mogę trzymać w pliku JSON, który jest poza katalogiem public i prawo odczytu do niego miałby tylko skrypt PHP, ale dalej mi to się nie widzi.
Czy naprawdę nie ma innej metody na to?

0

Można wysyłać maila bez uwierzytelniania.

0

O ile na serwerze, gdzie zamieszczę stronę funkcja mail() zadziała ;)

2

Hasła lepiej trzymać w zmiennych środowiskowych.
Zobacz na biliotekę phpdotenv
https://github.com/vlucas/phpdotenv

0

A może użyć funkcji sha1 lub md5?

2

Standardowo hasła przechowuje się w pliku env lub bezpośrednio w zmiennej środowiskowej i jest to uważane za relatywnie bezpieczne bo hasło wpada w ręce osoby niepowołanej dopiero jak przejmie kontrolę nad serwerem. Tak więc jeśli nie przechwoujesz hasła w kodzie/repozytorium to jest to ok. W większych organizacjach używa się trochę innych podejść np. AWS może się autoryzować poprzez role bez użycia haseł albo używa się specjalne systemy do przechowywania haseł i wstrzykuje się je w czasie rzeczywistym, ale takie rzeczy trudno osiągnąć na zwykłym hostingu i chyba jednak byłby to overkill. Plik env + konfiguracja uniemożliwiająca jego odczytanie z poziomu przeglądarki i będzie OK.

0

konfiguracja uniemożliwiająca jego odczytanie z poziomu przeglądarki

Co to konkretnie znaczy?

A co jeżeli mam przyznany dostęp tylko do konkretnego katalogu na serwerze? Bo jak rozumiem, plik .env trzeba umieścić wyżej, a tam dostępu nie mam.

1

Zobacz jaką ma strukturę plików np. Laravel.
Masz katalog public a w nim to co publiczne: index.php, CSSy ikonka, obrazki. Ten katalog ma uprawnienia na www i za pomocą . htaccess czy innego konfiga mapujesz ten katalog.
Poziom wyżej masz kod, bez praw dostępu i tam umieszczasz env.
Czyli

www:
    .env
    -kod
    -public
        Index.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1