Làm cách nào để khắc phục sự cố bảo mật trong các trang web PHP? . Không cần phải nói Dịch vụ phát triển PHP nên lưu ý các giải pháp bảo mật này.
1. Bảo vệ chống lại SQL injection
SQL Injection là một trong những cơ chế hack phổ biến nhất mà hầu hết các trang web không được trang bị đầy đủ để xử lý. Đây là kỹ thuật duy nhất có thể dễ dàng bỏ qua các biện pháp xác thực hoặc thao tác dữ liệu đăng nhập của người dùng
Đây là cách kiểm tra thông tin xác thực đăng nhập để xác thực đầu vào của người dùng trong các trường tương ứng
$uname=$_REQUEST['username'];
$pass=$_REQUEST['password'];
$mysql_query["select * from users where username='".$uname." and password='".$pass."'"];
Bây giờ, trong một tình huống bất thường thay vì nhập tên người dùng và mật khẩu nếu ai đó nhập một giá trị như sau, nó sẽ trông như thế này.
Trong trường hợp như vậy, truy vấn của người dùng sẽ như thế này
Username=’ or ‘1’=’1
Password= ‘ or ‘1’=’1
In such case, the user query will be like this:
1
select * from users where username='' OR '1'='1' and password='' OR '1'='1'
Thủ thuật hoạt động rất đơn giản dựa trên giá trị tương tự. Giá trị của đầu vào '1' luôn bằng '1' và do đó truy vấn do tin tặc tạo ra sẽ dễ dàng được xác thực là đúng và do đó có thể bỏ qua quá trình xác thực
Câu hỏi đặt ra là làm cách nào để ngăn việc bỏ qua thông tin xác thực đăng nhập như vậy? . Sau khi sử dụng mã bảo vệ này, nó sẽ giống như sau. mysqli_real_escape_string to safeguard the query from such injections. After using this protective code it will look like the following:
Thông thường, các nhà cung cấp dịch vụ hosting sẽ giúp bạn cấu hình máy chủ, nhưng trong trường hợp bạn đang quản lý hosting cho trang web của riêng mình trên máy chủ của riêng bạn, bạn cần đảm bảo những điều sau
- Đảm bảo máy chủ của bạn có thiết lập tường lửa và có khả năng chặn tất cả các cổng không cần thiết
- Thiết lập DMZ [Khu phi quân sự] cho phép truy cập vào cổng 80 và 443 từ bên ngoài thế giới. Điều này có thể không thực hiện được khi bạn không có quyền truy cập vào máy chủ của mình từ mạng nội bộ vì để làm được điều này, bạn sẽ phải mở các cổng để tải tệp lên và truy cập từ xa qua SSH hoặc RDP
- Khi bạn tải tệp lên từ Internet, hãy đảm bảo bạn sử dụng phương thức vận chuyển an toàn như SFTP hoặc SSH
- Nếu có thể, bạn sử dụng máy chủ khác cho cơ sở dữ liệu và trang web. Với nỗ lực này, bạn đảm bảo rằng máy chủ cơ sở dữ liệu sẽ không bị truy cập trực tiếp và chỉ máy chủ web của bạn mới có thể truy cập được. Vì vậy, bạn sẽ làm giảm khả năng dữ liệu của mình bị lộ
Hơn nữa, hãy nhớ hạn chế quyền truy cập vật lý vào máy chủ của bạn
Các mối đe dọa bảo mật hiện nay tinh vi hơn bao giờ hết. Đương nhiên, bạn không thể chỉ phụ thuộc vào các biện pháp bảo mật đã lỗi thời. Nếu bạn muốn ngăn trang web PHP của mình khỏi bị hack, hãy có một chiến lược toàn diện với tất cả các nguyên tắc và thực tiễn tốt nhất như đã giải thích ở trên
Bạn có muốn thuê các nhà phát triển PHP có kiến thức chuyên môn đã được chứng minh về các công cụ và thực tiễn bảo mật nêu trên không?