Mô tả về cách bảo mật php đúng cách khi sử dụng apache

Hơn bao giờ hết, mọi người, nhà phát triển và doanh nghiệp đều coi PHP là ngôn ngữ đang chết dần và nó có thể không có chỗ đứng trong Thế giới CNTT/Nhà phát triển. Tuy nhiên, PHP là một trong những ngôn ngữ lập trình phổ biến nhất vẫn được sử dụng cho đến ngày nay. Nó được sử dụng bởi hàng triệu trang web, khoảng 80% tất cả các trang web, bao gồm một số tên tuổi lớn nhất trên internet. PHP vẫn thống trị phát triển web phía máy chủ trong khi vẫn linh hoạt và thích ứng với nhu cầu của nhà phát triển

Mặc dù PHP là một ngôn ngữ rất mạnh, nhưng nó cũng có thể khá không an toàn nếu không được sử dụng đúng cách. Trong bài viết này, chúng ta sẽ thảo luận về tám phương pháp hay nhất về bảo mật PHP sẽ giúp giữ cho trang web của bạn an toàn khỏi tin tặc và người dùng độc hại. Chúng tôi cũng sẽ nói về kiểm tra bút ứng dụng và cách sử dụng nó để tìm lỗ hổng trong mã của bạn

Ngày nay PHP được sử dụng như thế nào?

Khi nhiều ngôn ngữ lập trình trong những năm qua có cùng xu hướng suy giảm, thì PHP lại hoàn toàn ngược lại. Vì PHP được sử dụng rộng rãi cho phần lớn các trang web hiện nay, thật công bằng khi nói rằng PHP đang gia tăng liên tục. Là một trong những ngôn ngữ lập trình dễ học và sử dụng nhất, nó cũng được coi là một trong những ngôn ngữ phía máy chủ tốt nhất để sử dụng do nó có chức năng của HTML nhúng. Hơn nữa, sự phát triển của PHP trong những năm gần đây, trên hết là mã nguồn mở [AKA Free. ], đã khiến nó trở thành ứng dụng yêu thích của nhiều nhà phát triển và doanh nghiệp

Pentesting ứng dụng giúp ích gì cho doanh nghiệp?

Thử nghiệm thâm nhập ứng dụng khá tự xác định. về cơ bản bạn đang thâm nhập vào các ứng dụng/ứng dụng web của mình. Nói một cách đơn giản, đó là quá trình xác định các lỗ hổng trong phần mềm bằng cách mô phỏng các cuộc tấn công khác nhau vào ứng dụng web. Loại thử nghiệm này có thể được sử dụng để tìm các lỗi trong mã có thể cho phép kẻ tấn công truy cập vào dữ liệu nhạy cảm hoặc chiếm lấy trang web. Kiểm tra bút ứng dụng web thông thường sẽ cho phép bạn tìm ra các phương pháp mã hóa thiếu an toàn, lỗ hổng định cấu hình sai, chẳng hạn như XSS và Tiêu đề HTTP, kiểm soát truy cập và xác thực bị hỏng cũng như rò rỉ thông tin và khắc phục các sự cố này trước khi Tội phạm mạng có cơ hội khai thác chúng

8 phương pháp hay nhất để bảo mật PHP

1. Luôn sử dụng phiên bản PHP mới nhất

Trước bất cứ điều gì, hãy luôn đảm bảo rằng PHP của bạn được CẬP NHẬT. Các phiên bản mới của PHP được phát hành thường xuyên với các bản sửa lỗi và cải tiến bảo mật, vì vậy, bằng cách sử dụng phiên bản mới nhất, bạn sẽ nhận được lợi ích từ các bản sửa lỗi và cải tiến này cũng như bất kỳ tính năng mới nào có thể hữu ích cho trang web của bạn. Nhìn vào liên kết được đính kèm để biết danh sách các bản phát hành mới nhất và cũ nhất. PHP. phát hành

2. Cấu hình đúng PHP. ini và các yêu cầu khác

Dù bạn có tin hay không, hầu hết các lỗi bảo mật đều đến từ việc cấu hình sai. Có một số thay đổi bạn có thể thực hiện đối với PHP. ini để làm cho nó an toàn hơn nhưng trước tiên, hãy bắt đầu với các cài đặt sau cần được điều chỉnh cho phù hợp với hệ thống cụ thể của bạn

phiên họp. Lưu đường dẫn

phiên họp. cookie_path [e. g. /var/www/mysite]

phiên họp. cookie_domain

Sau khi định cấu hình đúng các cài đặt đó, có một vài cài đặt khác mà bạn có thể chỉnh sửa để giữ an toàn cho ứng dụng PHP của mình. Hãy cùng xem danh sách kiểm tra dưới đây

  • Exposure_php = Tắt
    • Điều này hạn chế việc tiết lộ phiên bản PHP được gửi trong Tiêu đề HTTP. Khi được bật, Expose_php cho mọi người biết rằng PHP đã được cài đặt trên máy chủ hoặc hệ thống cụ thể đó, bao gồm phiên bản PHP trong tiêu đề HTTP, e. g [Được cung cấp bởi. PHP/8. 1. 2]. Bạn có thể làm điều này cho bất kỳ hệ thống nào và hoạt động tốt nếu bạn đang sử dụng nginx
  • allow_url_include=Tắt
    • Đặt tùy chọn này thành tắt sẽ ngăn chặn các cuộc tấn công thực thi mã từ xa
  • display_errors = Tắt
    • Điều này hiển thị liệu các lỗi có nên được in trên màn hình cho mọi người truy cập trang web hay không. Điều này nên bị vô hiệu hóa như một phương pháp bảo mật tốt nhất.  
  • phiên họp. cookie_httponly = 1
    • Đặt tùy chọn này thành 1 sẽ vô hiệu hóa quyền truy cập vào cookie thông qua API Javascript nhưng hãy thận trọng khi sử dụng tùy chọn này vì bạn có thể làm hỏng thứ gì đó
  • phiên họp. sử dụng_strict_mode = 1
    • Đặt giá trị này thành 1 để ngăn các cuộc tấn công cố định phiên
  • phiên họp. cookie_secure = 1
    • Điều này yêu cầu cookie chỉ được truyền nghiêm ngặt qua HTTPS
  • phiên họp. cookie_samesite = Nghiêm ngặt
    • Đặt điều này thành nghiêm ngặt ngăn chặn các cuộc tấn công có nguồn gốc chéo
  • phiên họp. sử dụng_trans_sid = 0
    • Điều này là không cần thiết vì vậy hãy đặt nó thành 0
  • phiên họp. sid_length = 128
    • Ở đây, chúng tôi đang đặt độ dài của chuỗi phiên để ngăn chặn các cuộc tấn công vũ phu
  • phiên họp. sid_bits_per_character = 6
    • Điều này làm tăng tính ngẫu nhiên của chuỗi phiên, đồng thời ngăn chặn cuộc tấn công vũ phu
  • file_uploads=tắt
    • Ở đây, chúng tôi đang vô hiệu hóa tải lên tập tin. Nếu bất kỳ ai cần tải tệp lên, bạn có thể đặt giới hạn cho kích thước của tệp bằng cách thực hiện upload_max_filesize = 1M

3. Sử dụng các phụ thuộc mã cập nhật, các thành phần của bên thứ ba và cập nhật máy chủ web của bạn.   

Ngoài việc sử dụng phiên bản PHP mới nhất, bạn cũng nên cập nhật mã và máy chủ web của mình. Điều này bao gồm mọi thư viện hoặc khung của bên thứ ba mà bạn đang sử dụng. Phần mềm lỗi thời thường là mục tiêu của các cuộc tấn công vì tin tặc biết rằng nó có nhiều khả năng có lỗ hổng có thể bị khai thác. Bạn muốn đảm bảo rằng bạn chỉ cài đặt các thư viện cần thiết và mọi thứ đều được cập nhật. Nếu bạn sử dụng Máy chủ web Apache, thì đây là một vài phương pháp hay nhất phổ biến

  • Luôn cập nhật phiên bản Apache của bạn
  • Bật ghi nhật ký lỗi
  • Nhận chứng chỉ SSL
  • Thêm tường lửa
  • Cài đặt mod_evasive
  • Đặt giới hạn HTTP
  • Không bao giờ giữ các mô-đun không sử dụng

Một trong những phương pháp yêu thích của chúng tôi là cài đặt mod_evasive vì điều đó giúp máy chủ của bạn tiếp tục hoạt động trong trường hợp bị tấn công. Một người khác sẽ nhận được chứng chỉ SSL. Nếu bạn đang sử dụng máy chủ web Apache hoặc bất kỳ máy chủ nào khác cho vấn đề đó, thì việc có chứng chỉ SSL là rất quan trọng vì nó thực hiện bắt tay SSL trước khi nhận được yêu cầu HTTP có chứa tiêu đề Máy chủ. Cuối cùng, nó cung cấp bảo mật hơn cho giao tiếp trực tuyến

4. Không lưu trữ mật khẩu bằng mã hóa đảo ngược

Có một vài lý do chính khiến mã hóa đảo ngược có hại. Thứ nhất, nó có thể dễ dàng bị bẻ khóa và giải mã, khiến dữ liệu của bạn dễ bị đánh cắp hoặc bị lộ. Thứ hai, nó có thể được sử dụng để theo dõi hoặc theo dõi các hoạt động của bạn, vì quá trình mã hóa và giải mã để lại dấu vết hoạt động rõ ràng. Cuối cùng, nó có thể được sử dụng để liệt kê tất cả các mật khẩu người dùng khác cũng như có một khóa tĩnh được sử dụng cho quá trình mã hóa và giải mã

Thay vào đó, bạn nên băm mật khẩu bằng thuật toán băm mạnh như bcrypt, mã hóa hai chiều AES với openssl hoặc thậm chí là Argon2 đã giành được Giải thưởng băm mật khẩu. Các đầu ra được chuẩn bị bằng thuật toán băm ít bị tấn công hơn so với thuật toán mã hóa. Điều này làm cho chúng an toàn hơn để lưu trữ mật khẩu hoặc dữ liệu nhạy cảm khác do sức mạnh tính toán tuyệt đối cần thiết để tìm văn bản rõ ràng [giải mã] tương đương. Ngoài ra, các thuật toán băm nhanh hơn nhiều so với các thuật toán mã hóa, làm cho chúng phù hợp hơn để sử dụng trong các ứng dụng mà tốc độ là quan trọng. PHP đã tích hợp sẵn bcrypt nên bạn không phải lo lắng về việc tải xuống bất kỳ phần phụ thuộc bên ngoài nào

5. Đừng dựa vào cookie để bảo mật

Cookie thường được sử dụng để lưu trữ thông tin về người dùng, chẳng hạn như trạng thái đăng nhập, tên người dùng, tùy chọn hoặc thậm chí thông tin nhạy cảm của họ. Tuy nhiên, cookie vốn không an toàn và có thể dễ dàng bị đánh cắp bởi những kẻ tấn công. Nếu bạn cần lưu trữ dữ liệu nhạy cảm trong cookie, trước tiên bạn nên mã hóa nó. Giống như băm mật khẩu, chúng tôi đang thêm một lớp bảo mật khác. Bạn có thể sử dụng các công cụ như halite được cung cấp bởi libsodium hoặc nếu muốn kỹ thuật hơn, bạn có thể sử dụng thứ gì đó như openssl hoặc thậm chí có thể là AES 256 bit với chế độ mã hóa CBC

6. Xác thực đầu vào của người dùng

Tất cả đầu vào của người dùng phải được xác thực trước khi mã PHP của bạn xử lý. Điều này bao gồm dữ liệu được nhập vào các trường biểu mẫu, tham số URL và tải trọng JSON. PHP có hàm filter_var[] để xác thực các biến. Chúng tôi có thể đặt tham số thứ hai của nó thành các giá trị khác nhau và sử dụng nó để xác thực email, URL, số nguyên, v.v. và hàm này trả về false nếu đầu vào không thành công hoặc không hợp lệ. Bạn có thể xem cách triển khai hàm filter_var[] trong ví dụ bên dưới

hàm is_valid_email[$email = ""]

  

{

 

trả về filter_var[trim[$email], FILTER_VALIDATE_EMAIL];

 

}

Chức năng trên được tạo bởi chính tôi. Hàm này kiểm tra xem email có hợp lệ hay không bằng cách sử dụng filter_var[].  

Bằng cách xác thực đầu vào của người dùng, bạn có thể giúp ngăn chặn các cuộc tấn công Cross-Site Scripting [XSS] và các loại đầu vào độc hại khác

7. Thực hiện kiểm toán bảo mật thường xuyên

Kiểm tra bảo mật thường xuyên có thể giúp xác định các lỗ hổng trong trang web của bạn và khắc phục chúng trước khi chúng có thể bị kẻ tấn công khai thác. Bằng cách kiểm tra mã của mình, bạn cũng có thể

đảm bảo rằng mã được cập nhật và tuân theo các phương pháp hay nhất để bảo mật PHP. Hơn nữa, nó giúp bạn có được thời gian phản hồi nhanh hơn, hiệu suất ứng dụng đáng tin cậy hơn và nó loại bỏ các nút thắt cổ chai trên các ứng dụng web của bạn trong tương lai. Thực hiện kiểm tra có thể quét các nội dung sau, chẳng hạn như.

  • Lỗ hổng Cross Site Scripting [XSS]
  • Lỗ hổng giả mạo yêu cầu chéo trang web [CSRF]
  • Tiêm SQL
  • Chèn mã PHP
  • Tấn công từ chối dịch vụ cookie
  • Thời gian tấn công

8. Sử dụng thư viện PHP

PHP thực hiện tốt công việc cung cấp cho các nhà phát triển một số chức năng, nghĩa là họ cung cấp cho chúng tôi các chức năng mà chúng tôi có thể sử dụng để bảo mật ứng dụng của mình tốt hơn. Bạn có thể sử dụng như sau

urlencode - cho phép lập trình viên xây dựng các URL hợp lệ một cách an toàn. Theo tài liệu PHP, hàm này rất hữu ích để mã hóa một chuỗi sẽ được sử dụng trong phần truy vấn của URL

Sử dụng các câu lệnh SQL đã chuẩn bị như bên dưới

Phần kết luận

Thực hiện theo các phương pháp hay nhất này sẽ giúp bạn bảo mật các ứng dụng PHP của mình và bảo vệ chúng khỏi bị tấn công. Hãy nhớ luôn cập nhật phần mềm của bạn, định cấu hình đúng máy chủ web và PHP của bạn, đồng thời đảm bảo thực hiện kiểm tra bảo mật thường xuyên để xác định bất kỳ lỗ hổng nào có thể lọt qua vết nứt. Chúng tôi hy vọng bạn thấy bài viết này hữu ích và chúng tôi hy vọng bạn xem các bài viết khác của chúng tôi có thể giúp giữ an toàn cho hệ thống của bạn

Làm cách nào để bảo mật biểu mẫu PHP?

Nguyên tắc cơ bản để viết mã PHP an toàn .
Không bao giờ tin tưởng đầu vào của người dùng. .
Hãy nhớ câu nói này. “Làm vệ sinh đầu vào sớm, vệ sinh đầu ra muộn”.
Đôi khi bạn không kiểm soát đầu vào. .
Đôi khi bạn không kiểm soát đầu ra. .
ở đầu vào. Xác thực và vệ sinh. .
ở đầu ra. Vệ sinh và thoát hiểm. .
Trình duyệt của khách truy cập. .
Kho dữ liệu

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

Apache hoạt động như thế nào với PHP?

Apache nhận đầu ra từ PHP và gửi lại qua Internet tới trình duyệt web của người dùng . Đây được gọi là `phản hồi web`. Trình duyệt web của người dùng nhận phản hồi từ máy chủ và hiển thị trang web trên máy tính hoặc thiết bị. Như bạn có thể thấy, PHP tương tác với máy chủ web theo cách rất thực tế.

Các bước khác nhau để định cấu hình PHP trên máy chủ Apache là gì?

Tại sao PHP trên Apache?
Bước 1. Truy cập trang web chính thức của PHP. .
Bước 2. Giải nén các tệp và đổi tên tệp đã giải nén thành PHP8. .
Ghi chú. Đảm bảo rằng cả tệp giải nén Apache và PHP phải nằm trong cùng một thư mục
Bước 3. Để kiểm tra xem thư mục PHP có được thêm vào đường dẫn của các biến hệ thống hay không

Chủ Đề