Cái nào là phương pháp an toàn trong php?
Tính đến năm 2020, hơn 79% ngôn ngữ phía máy chủ là PHP. Hầu hết trong số này là các hệ thống quản lý nội dung bao gồm các trang web Thương mại điện tử và WordPress. Vì đây là ngôn ngữ lập trình được sử dụng rộng rãi cho các trang web, bao gồm cả Facebook và Wikipedia, nên nó liên tục bị đe dọa tấn công và khai thác. Bảo mật PHP đã trở nên rất quan trọng để giữ cho các trang web và nền tảng an toàn trước các cuộc tấn công mạng và hack Show
Blog này bao gồm Do sự tiến bộ trong các cuộc tấn công mạng và kỹ thuật hack, rủi ro của các cuộc tấn công đã trở nên lớn hơn. Thêm vào đó, PHP cũng rất mong manh. Một lỗi nhỏ hoặc lỗi mã hóa có thể khiến trang web PHP của bạn dễ bị tấn công Sau khi đã nỗ lực rất nhiều để xây dựng một trang web PHP, việc bị hack là điều cuối cùng trong tâm trí của bất kỳ ai. Nhưng để thực sự làm cho ngăn xếp công nghệ PHP của bạn trở nên không thể xâm nhập và không thể bị tấn công, bạn phải đảm bảo bảo mật vững chắc Để giúp bạn làm điều đó, chúng tôi đã tổng hợp hướng dẫn bảo mật PHP mở rộng này. Hướng dẫn này sẽ giúp bạn xác định các mối đe dọa bảo mật PHP và các cách để tăng cường bảo mật trang web của bạn. Nó cũng có một số biện pháp bảo mật hiệu quả mà bạn có thể làm theo để giữ an toàn cho nó Tất cả chỉ trong một phút, nhưng trước tiên, hãy xem các số liệu thống kê về hack PHP này Một số thống kê về bảo mật PHP
Các mối đe dọa bảo mật PHP và các bản sửa lỗiTrong những năm qua, tin tặc đã phát minh ra những cách thông minh để đánh lừa và bỏ qua mọi tính năng nhỏ trên trang web PHP. Một số cuộc tấn công phổ biến nhất với tin tặc là 1. tiêm SQLSQL Injection là một hình thức tấn công rất phổ biến chiếm khoảng 2/3 tổng số các cuộc tấn công web. Với mã không phù hợp hoặc không hiệu quả dẫn đến một cuộc tấn công SQL Injection, vi phạm dữ liệu có thể xảy ra dẫn đến rò rỉ các chi tiết quan trọng như chi tiết thẻ tín dụng và thông tin xác thực, v.v. Nó cũng có thể xâm phạm toàn bộ máy chủ web. Dưới đây là một ví dụ về đoạn mã không an toàn Nhập chú thích (tùy chọn)Kẻ tấn công có thể gửi một truy vấn sẽ được thực thi cùng với truy vấn, như bên dưới Truy vấn trên sẽ sửa đổi mã như sau Nhập chú thích (tùy chọn)Bằng cách sử dụng các tập lệnh tương tự như đoạn mã trên, kẻ tấn công có thể truy cập vào tất cả các bảng dữ liệu và thông tin nhạy cảm Giải pháp cho vấn đề này là sử dụng truy vấn SQL được tham số hóa và Đối tượng dữ liệu PHP (PDO). Sử dụng các truy vấn được tham số hóa sẽ cho phép cơ sở dữ liệu phân biệt giữa phần dữ liệu và phần truy vấn. Do đó, nó có thể xử lý hai phần riêng biệt. PDO được bao gồm trong phiên bản PHP 5. 1 trở lên và bạn có thể sử dụng nó để thực thi các đoạn mã đã chuẩn bị sẵn trong mã của mình Để bảo vệ hơn nữa trang web của bạn, bạn có thể làm như sau
2. Truyền tải thư mụcTrong cuộc tấn công này, người ta có thể xem hoặc thực thi các tệp và thư mục quan trọng mà không phải ai cũng có thể truy cập được trừ quản trị viên. Các tệp này có thể nằm bên ngoài thư mục gốc và với quyền truy cập tệp không chính xác hoặc lỗi mã hóa, các tệp này có thể dễ bị truy cập trái phép. Mẫu mã dưới đây sẽ cho phép các truy vấn có thể truy cập tệp Nhập chú thích (tùy chọn)Nếu kẻ tấn công nhập “/etc/passwd” làm đối số thì nó sẽ trả về tệp này vì tất cả đều có thể truy cập được. Để ngăn chặn nó, bạn cần áp dụng các quyền thích hợp dựa trên trạng thái của người dùng 3. Cross-Site Scripting (tấn công XSS)Các lỗ hổng XSS rất phổ biến và điều này làm cho cuộc tấn công này được sử dụng rộng rãi. Trong cuộc tấn công này, các tập lệnh phía máy khách được chèn vào đầu ra của trang web và sau đó các tập lệnh này được thực thi trên hệ thống của người dùng. Những kẻ tấn công sử dụng cuộc tấn công này để đánh cắp thông tin, thông tin đăng nhập hoặc cookie, để đặt tên cho một số. Các cuộc tấn công XSS cũng phổ biến trong các trang web hiển thị dữ liệu bên ngoài Đoạn mã dễ bị tổn thương sau đây có thể bị khai thác để khởi động một cuộc tấn công XSS Nhập chú thích (tùy chọn)When the attacker passes codes such as to this webpage, it will get executed and display “XSS”. This shows how external malicious codes can be injected and executed to cause damage. Bạn có thể ngăn chặn các cuộc tấn công như vậy bằng cách làm theo các bước dưới đây
4. Yêu cầu chéo trang giả mạoCác cuộc tấn công giả mạo yêu cầu chéo trang được thực hiện từ phía người dùng và khai thác lòng tin mà các trang web dành cho người dùng. Người dùng có đặc quyền cao hơn phải đối mặt với các mối đe dọa cao nhất. Cuộc tấn công này ít phổ biến hơn những cuộc tấn công khác và do đó nguy hiểm hơn. Bảo vệ trang web của bạn khỏi các cuộc tấn công như vậy cũng phức tạp hơn so với các cuộc tấn công được đề cập ở trên. Khi người dùng đăng nhập vào một trang web, họ sẽ nhận được một số đặc quyền như truy cập các trang không dành cho người khác. Sử dụng các đặc quyền này, kẻ tấn công có thể thiết kế các yêu cầu HTTP sau đó được thực thi bởi trang web. Kẻ tấn công có thể sử dụng kỹ thuật này để truy cập cơ sở dữ liệu hoặc trích xuất thông tin quan trọng Các bước bảo mật PHP dưới đây sẽ giúp bạn ngăn chặn các cuộc tấn công như vậy
5. Lưu trữ mật khẩuVới các trường hợp đánh cắp thông tin xác thực và bán phá giá dữ liệu trên dark web ngày càng gia tăng, việc lưu trữ thông tin đăng nhập như mật khẩu một cách an toàn đã trở nên quan trọng hơn nhiều. Kẻ tấn công có thể tận dụng các lỗ hổng như tấn công SQL Injection hoặc XSS và truy cập mật khẩu được lưu trữ trong trang web. Trong trường hợp có vi phạm bảo mật, điều quan trọng là phải đảm bảo rằng những kẻ tấn công không thể giải mã mật khẩu và gây thêm thiệt hại. Có hai cách quan trọng để lưu trữ mật khẩu một cách an toàn, đó là sử dụng thuật toán băm và muối Thuật toán băm phổ biến nhất là MD5 và nó là thuật toán nhanh nhất. Tuy nhiên, nó rất dễ dàng và nhanh chóng để bẻ khóa. Bạn có thể sử dụng hàm password_hash() thay vì MD5, vì nó an toàn hơn. Hàm này tạo ra một hàm băm sáu mươi ký tự dựa trên BCRYPT (thuật toán CRYPT_BLOWFISH). Nó chấp nhận ba tham số. mật khẩu, thuật toán băm (theo mặc định sử dụng BCRYPT) và một giá trị tùy chọn như chi phí. Bạn có thể xác minh mật khẩu đã băm bằng cách sử dụng password_verify() Nhập chú thích (tùy chọn)Muối là một chuỗi ngẫu nhiên được thêm vào mật khẩu trước khi băm nó. Một muối dài và ngẫu nhiên sẽ làm cho các phương pháp bẻ khóa hiệu quả không hiệu quả. Một số mẹo bảo mật PHP khác để đảm bảo rằng mật khẩu được lưu trữ an toàn
Hướng dẫn liên quan – PHP Salts & Password Hashing 6. chiếm quyền điều khiển phiênCác cuộc tấn công chiếm quyền điều khiển phiên là hình thức tấn công phiên phổ biến nhất. Cuộc tấn công này bao gồm truy cập phiên của người dùng không nghi ngờ và sau đó khởi chạy các cuộc tấn công tiếp theo. Sau khi chiếm quyền điều khiển thành công, kẻ tấn công có thể thực hiện tất cả các tác vụ mà người dùng ban đầu được phép thực hiện. Trong trường hợp phiên của người dùng là đăng nhập vào tài khoản ngân hàng của họ, kẻ tấn công có thể thực hiện chuyển khoản hoặc chiếm đoạt toàn bộ tài khoản. Cuộc tấn công này cũng có thể cung cấp quyền truy cập vào mạng toàn công ty, trong trường hợp phiên thuộc về chủ nhân trong một tổ chức Cuộc tấn công này có thể được thực hiện bằng cách đơn giản là có mã định danh phiên. Để ngăn chặn các cuộc tấn công chiếm quyền điều khiển phiên, các trang web phải xác minh một số chi tiết trong yêu cầu HTTP và phân tích chúng để xác định phiên chính hãng. Những kẻ tấn công lừa trang web bằng cách chuyển thông tin đó sau đó được hiểu là xác thực và cho phép phiên tiếp tục. Một cách hiệu quả để ngăn chặn các cuộc tấn công như vậy là tìm kiếm các trường như vậy mà kẻ tấn công sẽ khó tạo ra. Các trường này sau đó có thể được sử dụng để xác minh tính xác thực của phiên. Kẻ tấn công khó sao chép các trường như tác nhân người dùng. Ngoài ra, việc kiểm tra chi tiết vị trí và thông tin trình duyệt và khớp chúng với dữ liệu lịch sử có thể cung cấp một số thông tin chi tiết về phiên hiện tại Để không ảnh hưởng đến trải nghiệm người dùng, nếu nghi ngờ, các trang web có thể yêu cầu nhập mật khẩu để xác thực. Người dùng sẽ đánh giá cao sự đề phòng bổ sung và hệ thống sẽ không khóa người dùng chính hãng 7. Cố định phiênTrong phiên cố định, kẻ tấn công gửi cho người dùng ID phiên hợp lệ và sau đó sử dụng ID đó để truy cập vào trang web. Kẻ tấn công tạo một phiên và sau đó đợi người dùng sử dụng ID phiên của kẻ tấn công để đăng nhập vào trang web. Sau đó, trang web sẽ coi phiên này là xác thực và cho phép kẻ tấn công sử dụng phiên này mà không bị gián đoạn Nếu một trang web trích xuất ID phiên từ URL hoặc biểu mẫu, kẻ tấn công sẽ dễ dàng sử dụng phương thức tấn công này. Trong trường hợp này, người dùng chỉ cần nhấp vào liên kết và sau đó trang web sẽ thêm ID phiên của kẻ tấn công cho người dùng. Điều này cũng có thể được thực hiện với cookie bằng cách đặt nó thành ID phiên của kẻ tấn công. Có hai cách chính để ngăn chặn các cuộc tấn công như vậy
Dữ liệu phiên bị lộNếu bạn sử dụng máy chủ dùng chung thì các phiên của bạn có thể được lưu trữ trong kho lưu trữ phiên dùng chung. Nếu trường hợp này xảy ra với máy chủ của bạn, thì các phiên của trang web của bạn dễ bị truy cập trái phép. Trong đó, với đoạn mã dưới đây, kẻ tấn công có thể dễ dàng truy cập phiên được lưu trữ trong thư mục “/tmp” theo mặc định Nhập chú thích (tùy chọn)Đây là một truy vấn PHP đơn giản có thể sử dụng các đặc quyền của máy chủ để truy cập và đọc các tệp. Để ngăn chặn điều này, bạn có thể sử dụng lệnh safe_mode nhưng vì nó chỉ hoạt động với PHP nên kẻ tấn công có thể sử dụng các ngôn ngữ khác để thực hiện việc này. Một giải pháp tốt hơn là tránh sử dụng cửa hàng phiên chia sẻ. Lưu trữ dữ liệu trong cơ sở dữ liệu có thông tin đăng nhập truy cập duy nhất liên quan đến tài khoản của bạn. Để làm điều này, bạn có thể sử dụng hàm session_set_save_handler() để thay thế việc xử lý phiên mặc định của PHP bằng các hàm của riêng bạn Hướng dẫn liên quan – Clickjacking trong PHP Tấn công XMLĐối với cuộc tấn công này, kẻ tấn công khai thác tính năng phân tích cú pháp của đầu vào XML. Nếu trình phân tích cú pháp XML được định cấu hình yếu thì nó sẽ phân tích cú pháp đầu vào XML có tham chiếu đến các nguồn bên ngoài. Có hai lỗ hổng chính có thể bị khai thác. Thực thể bên ngoài XML và tiêm XPath. Các cuộc tấn công này tạo cơ sở cho các cuộc tấn công tiếp theo, chẳng hạn như khai thác bao gồm tệp từ xa. XPath Injection tương tự như SQL Injection nhưng được áp dụng cho các tài liệu XML. Vì kiểu tấn công này rất hiếm nên các chức năng và cơ chế sẵn có tương đối ít hơn để bảo vệ chống lại nó. Bạn có thể sử dụng một tập hợp các ký tự trong danh sách trắng để đảm bảo rằng các ký tự đặc biệt hoặc không mong muốn không được chấp nhận Nhập chú thích (tùy chọn)Mẹo và thủ thuật bảo mật PHPBảo mật là một phần thiết yếu của sự phát triển và giống như các cuộc tấn công đã phát triển theo thời gian, bảo mật cũng phải phát triển để phù hợp với tốc độ. Bảo mật của trang web không chỉ quan trọng đối với chủ sở hữu trang web mà còn cả người dùng gặp rủi ro với thông tin của họ trong trường hợp bị tấn công mạng. Chúng tôi cần hiểu một số điểm liên quan đến bảo mật để có thể thực hiện các bước thích hợp
Như đã thảo luận ở trên, bảo mật PHP luôn bị đe dọa nhưng nó có thể được khắc phục nếu chúng ta triển khai một vài giao thức bảo mật thiết yếu và tuân theo các nguyên tắc. Dưới đây là một số mẹo bảo mật sẽ giúp tăng cường bảo mật PHP Xác thực đầu vàoĐối với bảo mật PHP, xác thực dữ liệu phía máy khách là không đủ. Nó có thể dễ dàng bị phá vỡ, ví dụ: nếu kẻ tấn công xóa bất kỳ JavaScript nào khỏi mã nguồn của trang web và sau đó gửi biểu mẫu mà không có bất kỳ xác minh nào, nó sẽ không bị phát hiện nếu không có xác thực phía máy chủ. Điều này mở ra một lối thoát cho các cuộc tấn công như tấn công SQL Injection, XSS hay CSRF. Cả xác thực phía người dùng và phía máy chủ đều cần thiết cho bảo mật PHP danh sách đenDanh sách đen có thể bị phá vỡ bởi những kẻ tấn công thông qua các phương pháp thử và sai. Nó không phải lúc nào cũng bảo vệ chống lại các đầu vào độc hại nhưng trong một số trường hợp, nó có thể bảo vệ chống lại các phương thức tấn công đã biết hoặc phổ biến. Bạn có thể đưa vào danh sách đen các chuỗi phổ biến được sử dụng bởi những kẻ tấn công hoặc các ký tự đặc biệt được biết là nguy hiểm Nghiên cứuTrong giai đoạn phát triển, việc nghiên cứu về lỗi hoặc các mối đe dọa bảo mật rất hữu ích khi chúng tôi bắt gặp một số phương pháp và giải pháp. Tuy nhiên, sao chép các mã đó không phải là một ý tưởng hay. Trang web của bạn có thể khác với giải pháp nếu từ. Ngoài ra, chúng có thể đã lỗi thời và bạn sẽ khiến toàn bộ máy chủ trang web của mình gặp rủi ro. Nếu bạn sao chép mã từ nhiều nguồn thì có một thay đổi là tất cả các đoạn mã có thể không hoạt động cùng nhau và việc liên kết chúng sẽ cần nhiều nỗ lực. Nghiên cứu giúp trả lời rất nhiều câu hỏi, tuy nhiên, sử dụng nó như một nguồn hiểu biết là một lựa chọn tốt hơn so với sao chép mã mật khẩu mạnhĐiều này không thể được nhấn mạnh đủ. Phần lớn các cuộc tấn công có thể xảy ra do thông tin đăng nhập yếu hoặc dễ bị phá vỡ. Một mật khẩu mạnh có thể là chữ và số với cả ký tự viết thường và viết hoa. Một tùy chọn khác là sử dụng các cụm từ vì sẽ mất nhiều thời gian và sức mạnh tính toán để bẻ khóa những mật khẩu đó. Ngoài ra, hãy đảm bảo rằng tất cả mật khẩu mặc định đều được thay đổi bởi cả người dùng và quản trị viên. Hỗ trợ người dùng của bạn sử dụng mật khẩu mạnh hơn bằng cách giúp họ nhận thức được tầm quan trọng của mật khẩu và các nguyên tắc mà họ có thể tuân theo Xác thực đa yếu tốXác thực nhiều cấp đã trở thành tiêu chuẩn bảo mật mới. Trong trường hợp này, kẻ tấn công sẽ không thể gây ra bất kỳ thiệt hại nào nếu chúng có thông tin xác thực vì nó sẽ yêu cầu một trường bổ sung như OTP (Mật khẩu dùng một lần) để đăng nhập. Trong Xác thực 2 yếu tố, người dùng sẽ phải nhập mã bổ sung sau khi họ sử dụng thông tin đăng nhập của mình. Để vượt qua được điều này, kẻ tấn công sẽ yêu cầu thông tin đăng nhập cũng như quyền kiểm soát thiết bị nhận OTP Hướng dẫn liên quan – Quyền đối với tệp PHP Lọc dữ liệuLọc dữ liệu phù hợp sẽ bảo vệ trang web của bạn khỏi các đoạn mã độc hại và các cuộc tấn công chèn mã. Có nhiều cách để kích hoạt tính năng lọc dữ liệu hiệu quả. Phương pháp bao gồm có nghĩa là có một mô-đun duy nhất dành riêng cho bảo mật được đặt ở đầu tất cả các tập lệnh có thể truy cập công khai. Có thể bao gồm nhiều điểm kiểm tra bảo mật và giao thức. Để lọc dữ liệu, bạn có thể sử dụng phương pháp danh sách trắng và bao gồm một số tổ hợp ký tự và chuỗi Sử dụng tường lửaTường lửa bảo vệ toàn diện cho trang web của bạn. Nó lọc tất cả dữ liệu và yêu cầu không mong muốn và độc hại khi truy cập trang web của bạn. Tường lửa mạnh như Astra sẽ cung cấp khả năng bảo vệ hoàn toàn khỏi các cuộc tấn công như SQL Injection, DDoS và phần mềm độc hại, v.v. Tại Astra, chúng tôi có các công cụ thông minh và hiệu quả cũng như kiến thức chuyên môn về bảo mật để cung cấp cho bạn sự bảo vệ toàn diện trước mọi mối đe dọa trên mạng. Bảng điều khiển và báo cáo sẽ giúp bạn cập nhật mọi thứ diễn ra với trang web của mình Cách Tường lửa ứng dụng web Astra bảo vệ trang web của bạnCác mẹo bảo mật PHP được liệt kê trong hướng dẫn này sẽ giúp bạn giữ an toàn cho trang web của mình và đảm bảo rằng dữ liệu trên trang web của bạn luôn an toàn. Bảo mật luôn linh hoạt và luôn thay đổi, vì vậy, việc cập nhật tất cả các phát triển mới nhất sẽ giúp bạn bảo vệ trang web của mình khỏi các cuộc tấn công nâng cao. Sử dụng một dịch vụ bảo mật sẽ giúp bạn trong việc này mà không gặp rắc rối nào. Để bảo mật PHP của bạn cho một chuyên gia như Astra có lẽ là một ý tưởng hay. Rất nhiều nỗ lực và công sức bỏ ra để tạo ra một trang web và bảo vệ nó là một nhiệm vụ khó khăn nhưng quan trọng. Với sự hiểu biết đúng đắn và thông tin chính xác, bạn có thể ngăn chặn những kẻ tấn công Phương pháp nào an toàn để bảo mật dữ liệu trong PHP?Sử dụng chứng chỉ SSL cho HTTPS
. Bạn phải bao gồm HTTPS bằng cách cài đặt chứng chỉ SSL vào trang web của mình. Nó cũng củng cố các ứng dụng web của bạn chống lại các cuộc tấn công XSS và ngăn tin tặc đọc dữ liệu được vận chuyển bằng mã.
Bảo mật trong PHP là gì?Vì PHP quá phổ biến nên Bảo mật PHP là điều cần thiết và số lượng ứng dụng PHP dễ bị tấn công rất lớn . Hầu hết các ứng dụng web PHP chia sẻ các phần mã hoặc tập lệnh với các ứng dụng web khác. Nếu đoạn mã được chia sẻ bị phát hiện là dễ bị tổn thương thì tất cả các ứng dụng đang sử dụng nó cũng dễ bị tổn thương.
Làm cách nào để bảo mật dữ liệu bài đăng trong PHP?Hãy bắt đầu nào. . Cập nhật phiên bản PHP của bạn thường xuyên. . Cẩn thận với các cuộc tấn công XSS (Cross-site scripting). Sử dụng các câu lệnh SQL đã chuẩn bị. . Không tải tất cả các tệp khung lên máy chủ của bạn. . Luôn xác thực đầu vào của người dùng. . Giới hạn quyền truy cập thư mục. . Xác minh cấu hình SSL của bạn. . Sử dụng mã hóa URL Làm cách nào để bảo mật API PHP cốt lõi?Điều kiện tiên quyết duy nhất là PHP, Composer và tài khoản nhà phát triển Okta miễn phí. . Tạo khung API REST Triển khai Phiên bản API REST ban đầu Sử dụng Okta và OAuth 2. 0 để bảo mật API Thiết lập Okta Nhận Mã thông báo truy cập từ Okta Thêm ủy quyền mã thông báo vào API Thu hồi mã thông báo truy cập |