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

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.
 

  • dbconn. php 
     

php




  $db_host =____6;

  $db_name =____20;

  3 =5;

  8 =____30;

 

    3   4$db_host  68  63  6$db_name$db_host2

 

  $db_host4 $db_host5______33$db_host7

$db_host8$db_host9 =0=1$db_host2

  =4

=5

  • Mẫu đăng ký.
     

html




________ 56=7 ________ 58="localhost"0 ________ 61="localhost"3 "localhost"4

  =6"localhost"7 "localhost"8=;0;1"localhost"7"localhost"4

  =6;6 ;7=06   0=06 10=0613

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. com

ghi 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

require_once 'private/config.php';
(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 đó

  • đó là một máy chủ được chia sẻ để những người dùng khác có thể đọc tệp
  • nó yêu cầu thư mục người dùng của tôi có thể đọc được trên toàn thế giới và nếu tôi thay đổi nó thành thư mục này, nó sẽ bị thay đổi lại bởi một tập lệnh tự động trên máy chủ web của tôi.

    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ư ;8) trong tập lệnh PHP của bạn thì nó sẽ an toàn. Ngoài ra, máy chủ của bạn phải được thiết lập để xử lý các tệp PHP và hiển thị đầu ra của tập lệnh thay vì phân phối mã thô như thể nó là HTML thuần túy, nhưng chỉ cần cài đặt PHP thường sẽ giải quyết vấn đề đó

    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)