PHP MySQL ẩn mật khẩu cơ sở dữ liệu
Hầu hết các trang web đang cung cấp tiện ích đăng nhập và đăng nhập cho người dùng. Người dùng phải tạo một mật khẩu và sử dụng nó để đăng nhập vào trang web. Nhưng nó rất quan trọng để bảo mật mật khẩu của người dùng. password_hash() cung cấp phương tiện để lưu trữ an toàn mật khẩu của người dùng vào cơ sở dữ liệu Show Cú pháp password_hash(Password, PASSWORD_DEFAULT) Ví dụ. Tham số đầu tiên Mật khẩu sẽ chứa mật khẩu bình thường. Tham số thứ hai sẽ chứa PASSWORD_BCRYPT để đảm bảo an toàn, nếu không, nó sẽ chứa PASSWORD_DEFAULT làm mặc định. Hãy xem ví dụ để hiểu đúng.
php
html________ 56
Làm thế nào tôi có thể thay đổi điều đó? . Mặc dù tôi nhận thấy rằng chỉ root mới có thể xem nội dung của tệp này (quyền của nó là 600), nhưng tôi vẫn không muốn có mật khẩu rõ ràng Bạn có đề nghị gì? Nếu bạn cần bất kỳ thông tin bổ sung, xin vui lòng hỏi - stackoverflow. comghi bàn. 1 câu trả lời được chấp nhận Nếu bạn chỉ đang tìm giải pháp cho phpmyadmin, bạn có thể thay đổi nó thành xác thực dựa trên cookie. sau đó tạo. htaccess với tên người dùng và mật khẩu db trong đó mật khẩu được lưu trữ trong tệp mật khẩu được mã hóa. trong lần gọi trang đầu tiên, bạn sẽ phải đăng nhập một lần bằng người dùng và mật khẩu, sau đó cookie được lưu trữ cục bộ, vì vậy trong lần gọi tiếp theo, bạn sẽ truy cập lại ngay Cách tiếp cận đầu tiên của tôi là tạo một 'config. php' và đặt nó bên ngoài gốc tài liệu của tôi trong thư mục có tên riêng trong thư mục người dùng của tôi Sau đó tôi có thể đưa nó vào tập lệnh với (sau khi sửa đổi phù hợp đường dẫn bao gồm php)Điều này ít nhất có nghĩa là tệp chứa mật khẩu không bao giờ có thể vô tình được cung cấp bởi máy chủ web nếu có một số loại cấu hình bị rối Điều này dường như làm việc khá tốt. Tuy nhiên, có hai vấn đề với cách tiếp cận đó Vì vậy, tôi đã liên hệ với dịch vụ lưu trữ web và hỏi họ đề xuất những gì. Họ khuyên tôi nên chạy tất cả các tập lệnh yêu cầu quyền truy cập DB dưới dạng CGI. Điều này liên quan đến việc sao chép chúng vào thư mục cgi-bin và thêm dấu #. /local/bin/php lên đầu chúng Vì CGI sử dụng suexec để chạy với tư cách là tôi (thay vì không ai/không ai) nên nó có quyền truy cập vào các tệp mà chỉ tôi mới có thể đọc nên mật khẩu có thể được lưu trữ an toàn Máy khách không có quyền truy cập vào mã nguồn cho các quy trình phía máy chủ hoặc bất kỳ biến PHP nào. đầu ra duy nhất. Trừ khi bạn cung cấp một cơ chế cụ thể để hiển thị các biến (i. e. các chức năng gỡ lỗi như Sau đó, có một vấn đề lớn hơn về cấp độ truy cập với cộng tác viên hoặc những người khác có quyền truy cập máy chủ. và đó là lý do tại sao nên lưu thông tin đăng nhập của bạn vào một tệp riêng mà bạn loại trừ khỏi các môi trường công khai như GitHub. Đó là tất cả những gì tôi sẽ nói về điều đó, vì mọi trường hợp đều khác nhau, đặc biệt là khi bạn đưa vào quyền truy cập tệp và quyền sở hữu tệp. Tuy nhiên, cần lưu ý rằng quyền của người dùng MySQL cũng có thể bị hạn chế, điều này bổ sung thêm một lớp bảo hiểm trong trường hợp người dùng sai gặp phải thông tin đăng nhập Làm cách nào để ẩn mật khẩu trong PHP?Cách tốt nhất để ẩn mật khẩu là lưu nó vào tệp bên ngoài và sau đó đưa nó vào tập lệnh php của bạn. Tệp của bạn có mật khẩu này, giả sử ' config. . vậy tôi có nên đưa nó qua. 'bao gồm ("cấu hình. php");' . chỉ
Vâng. Cảm ơn. . Kiểm tra cấu trúc thư mục tôi đã cung cấp cho bạn. . Làm cách nào để lưu trữ mật khẩu được mã hóa trong cơ sở dữ liệu SQL bằng PHP?Quá trình được sử dụng để mã hóa mật khẩu. . Tạo khóa mã hóa duy nhất (DEK) Xáo trộn thông tin bằng cách sử dụng mã hóa khóa duy nhất Di chuyển khóa mã hóa duy nhất (DEK) sang Cloud KMS để mã hóa, khóa này sẽ trả về KEK Lưu dữ liệu được mã hóa và khóa (KEK) cùng với nhau Gỡ khóa đã tạo (DEK) |