Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao không sử dụng quyền và người dùng MySQL tích hợp sẵn cho một trang web?

Người dùng MySQL dành cho người dùng của chính máy chủ MySQL. Những người dùng này chỉ nên được dành riêng cho quản trị viên máy chủ hoặc các ứng dụng yêu cầu người dùng chạy (cấp cho mỗi ứng dụng một người dùng riêng biệt). Hệ thống quản lý người dùng MySQL được xây dựng đặc biệt để phù hợp với quyền truy cập có kiểm soát vào cơ sở dữ liệu chạy trên máy chủ, KHÔNG phải là cơ sở xác thực người dùng trong ứng dụng web. Ngoài ra, bất kỳ bổ sung cơ sở dữ liệu nào (và sáng tạo của người dùng) sẽ yêu cầu bạn có một người dùng đang chạy ứng dụng có các quyền đó trên cơ sở dữ liệu. Mặc dù bản thân nó không phải là một lỗ hổng trực tiếp, nhưng nếu một lỗ hổng được tìm thấy trong hệ thống PHP của bạn, nó có thể khiến cuộc sống của bạn tồi tệ hơn rất nhiều.

Bạn không bao giờ muốn ứng dụng của mình có thể gây ô nhiễm không gian tên cơ sở dữ liệu MySQL của bạn với các cơ sở dữ liệu bổ sung hoặc (các bảng cho vấn đề đó). Trong quá trình vận hành ứng dụng của bạn, ứng dụng chỉ có thể tạo, truy xuất, cập nhật và xóa các bản ghi bằng cách sử dụng Nguyên tắc về đặc quyền ít nhất , nghĩa là bạn sẽ cấp cho người dùng cơ sở dữ liệu của mình quyền truy cập để chỉ làm những việc mà họ yêu cầu và không làm gì hơn.

Đối với việc băm mật khẩu, hãy sử dụng bcrypt qua hàm crypt () của PHP . Lưu trữ dữ liệu đó trong cơ sở dữ liệu trong bảng người dùng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chọn các hàng theo khoảng thời gian trong mysql?

  2. Mã hóa mật khẩu trong câu lệnh chèn trong postgresql gây ra lỗi (Cần thêm kiểu ép kiểu rõ ràng)

  3. Các lựa chọn thay thế SQL Server Express vượt quá giới hạn 2GB

  4. Ràng buộc phạm vi cột MySQL dạng số:làm thế nào?

  5. mysql trùng lặp với LOAD DATA INFILE