Zastanawiam się, jaki jest najlepszy sposób na przechowywanie nazw użytkowników i haseł do łączenia się z bazą danych mysql?Jak mogę szyfrować lub ukrywać hasła w skrypcie Perla używanym do łączenia się z bazą danych mysql
Jak mogę szyfrować lub ukrywać hasła w skrypcie Perla używanym do łączenia się z bazą danych mysql
Odpowiedz
Łatwy i bezpieczny sposób — jeśli zrobisz to dobrze — jest z plikiem konfiguracyjnym. Ciąg połączenia MySQL DBI/DBD będzie wyglądać –
dbi:mysql:my_dbname;mysql_read_default_file=/NON-WEB/path/to/.my.cnf
– i będzie przechodzić żadnego użytkownika lub hasła do połączenia zasilania DBI.
Plik .my.cnf będzie mieć hasło. Sposobów, jak utrzymać ten bezpieczny obejmują –
- Plik jest tylko czytelny przez webuser.
- Plik znajduje się poza katalogiem głównym; odwiedzenie adresu URL nie może go dosięgnąć.
- Plik konfiguracyjny zawiera minimum do podłączenia, prawdopodobnie nie potrzebuje na przykład nazwy użytkownika.
- Upewnij się, że w aplikacji nie ma żadnych exploitów, które mogłyby pozwolić na przeglądanie systemu plików.
- mysql Konto webuser za ograniczył przywileje: brak dotacji, nie tworzyć | stoły drop, itp, itd.
Zobacz chapter Configuring Perl Programs z Mastering Perl.
(Link tylko z powodu ograniczeń kopiować.)
prostu nie ma sposobu, aby bezpiecznie przechowywaćnazwa użytkownika/hasło. Ponieważ na końcu twój skrypt zawsze musi być w stanie uzyskać dane, każdy inny mógłby pójść tą samą drogą.
Jeśli przechowujesz dane zaszyfrowane, musisz przekazać skryptowi klucz do odszyfrowania. Więc jeśli ktoś czyta scenariusz, dostaje klucz. Jednak w przypadku środowiska CGI skrypt musi być zawsze czytelny przez serwer WWW.
Jeśli nie korzystasz z CGI-Environment lub istnieje kilka rzeczy suExec, możesz uzyskać to ograniczenie, ustawiając prawa dostępu skryptu/pliku konfiguracyjnego, tak aby nikt inny niż wykonujący je użytkownik nie mógł odczytać plików.
Jest to bezpieczne, dopóki nie pojawi się jakiś administrator i chce się dowiedzieć, co tam jest, lub ktoś włamie się na twoje konto.
- 1. zdalnego łączenia się z bazą danych MySQL
- 2. Jak długo utrzymuje się połączenie z bazą danych MySQL PHP?
- 3. SocketTimeoutException podczas łączenia z lokalną bazą danych
- 4. CakePHP 2 nie może połączyć się z bazą danych MySQL
- 5. Jak wyłączyć WARN podczas łączenia się z bazą danych SQL w Javie
- 6. Jak mogę połączyć się z bazą danych postgreSQL w scala?
- 7. Jak szyfrować hasła za pomocą PostgreSQL?
- 8. Jak używać pymongo do łączenia się z istniejącą kolekcją/bazą danych dokumentu?
- 9. Kod pocztowy iOS Xcode łączący się z bazą danych MySQL
- 10. Połącz się z internetową bazą danych MySQL z localhost
- 11. Jaki jest zalecany sposób łączenia się z MySQL z Go?
- 12. jak połączyć się z bazą danych w aplikacji openshift
- 13. Połącz się z bazą danych MySQL za pomocą RMySQL
- 14. Jak używać Ruby do łączenia się z bazą danych SQLite3 poza Railsami jako językiem skryptowym?
- 15. Jaki jest preferowany sposób łączenia się z bazą danych PostgreSQL z PHP?
- 16. Jak mogę obsługiwać klawisze strzałek w skrypcie Perla pod cygwin?
- 17. Jak używać hasła aplikacji Google w skrypcie?
- 18. Jak działa połączenie z bazą danych w php-mysql
- 19. MySql PDO połączenie z bazą danych
- 20. Proste połączenie z bazą danych MySQL Amazon RDS MySQL Workbench
- 21. Błąd uwierzytelniania podczas łączenia z bazą danych Heroku PostgreSQL
- 22. Jak połączyć się z bazą danych MSSQL przy użyciu modułu DBI Perla w systemie Windows?
- 23. sqlalchemy: połącz się z MySQL bez hasła
- 24. Jakie są najbezpieczniejsze sposoby łączenia się z bazą danych za pomocą PHP?
- 25. Jak zdefiniować dwa połączenia z bazą danych MySQL w Sails.js
- 26. Jak mogę połączyć się z MySQL w Ruby on Rails?
- 27. Auth nie powiodła się, kod 18 podczas łączenia się z bazą danych MongoLab
- 28. Jak połączyć się z istniejącą bazą danych w ASP.NET MVC?
- 29. Połącz się z bazą danych Oracle z ASP .Net Core
- 30. Jak zastąpić zmiennymi opcjami w skrypcie perla
The hasła „najlepszy sposób” do przechowywania informacji użytkownika. I chociaż nie ma w 100% "bezpiecznych" sposobów przechowywania tego, niektóre sposoby są lepsze od innych. Trzymanie tych informacji oddzielnie od kodu jest dobrą praktyką z punktu widzenia bezpieczeństwa i konserwacji. – Rob