URL vệ sinh WordPress
Không có gì bí mật khi bảo mật là một phần thiết yếu của bất kỳ phần mềm nào. Trong bài viết này, tôi sẽ cho bạn biết về data sanitization và cách một số quy tắc nhỏ có thể giúp bạn bảo mật tuyệt đối cơ sở mã của mình. Nếu vệ sinh là thuốc giải độc, thì chất độc là gì? . Hãy nhìn sâu hơn vào vấn đề. Bắt đầu nào Show
Vâng, tôi thích định nghĩa bên ngoài khoa học máy tính vì đó là một sự tương đồng tuyệt vời với thế giới thực. Vi khuẩn hoặc các yếu tố gây bệnh có thể là nguyên nhân của một số bệnh, có thể nặng, có thể nan y. Hãy bắt đầu với lý do tại sao vệ sinh lại quan trọng Chèn mã là một bất ngờ trong dữ liệu người dùng
Chèn mã là tên chung cho tất cả các lỗ hổng dựa trên việc thêm và chạy mã dễ bị tấn công. Tất cả các lần tiêm mã đều hoạt động theo cùng một cách. Trên ví dụ SQL injection, chúng ta có thể xem và đi sâu vào quy trình injection
Bạn có thể xem một nơi để tiêm? . Tuy nhiên, trong trường hợp tích cực, khi khách hàng nhập một số từ hoặc cụm từ, mọi thứ sẽ hoạt động mà không gặp bất kỳ sự cố nào. Tuy nhiên, trong trường hợp cực đoan, điều gì có thể xảy ra nếu ai đó nhập mã SQL vào đây? Nhìn vào mã, bạn hoàn toàn có thể lấy bất kỳ dữ liệu nào từ cơ sở dữ liệu. Bạn không tin à? . Do đó, có thể có các loại bài đăng khác, bài đăng riêng tư, v.v. Chúng tôi cũng có thể lấy dữ liệu khác, chẳng hạn như tên người dùng và mật khẩu nếu chúng tôi gửi mã Bất chấp vấn đề này, công thức ngăn ngừa tiêm là một, và nó rất đơn giản. xóa các ký tự không mong muốn khỏi dữ liệu người dùng hay nói cách khác là làm sạch đầu vào của người dùng Kỹ thuật đầu vào bảo mật hoặc vệ sinh sớm
Khi xử lý đầu vào của người dùng, bạn phải luôn làm sạch những dữ liệu này một lần, càng sớm càng tốt Hãy nhớ rằng ngay cả một yêu cầu bất ngờ cũng có thể gây ra nhiều vấn đề, mất ngủ và đau đầu Mặc dù các định nghĩa ngắn gọn và rõ ràng nhưng chúng ta cần hiểu rõ ý nghĩa của từng thành phần. Đầu vào của người dùng có nghĩa là gì? Vì tất cả các nhà phát triển nên sử dụng một công cụ mạnh mẽ như IDE, có thể tự động ghi nhớ thời điểm thực hiện một số hành động nhất định, nên tất nhiên việc vệ sinh cũng không ngoại lệ. Nhóm WordPress đã chuẩn bị các Tiêu chuẩn mã hóa WordPress, ngoài việc kiểm tra các tiêu chuẩn mã hóa, còn nhắc nhở chúng tôi vệ sinh đầu vào của người dùng Bạn đã đọc về việc vệ sinh hàng chục lần trước đây, nhưng nó có nghĩa là gì? Danh sách các chức năng khử trùng PHPDưới đây là danh sách các chức năng khử trùng PHP
Danh sách chức năng vệ sinh WordPressVà các chức năng vệ sinh WordPress
Mặc dù có rất nhiều chức năng ở trên, nhưng làm cách nào để tìm được chức năng phù hợp với trường hợp của tôi? . Nói cách khác, hãy nhìn vào dữ liệu của bạn và suy nghĩ một cách logic. Đương nhiên, người bạn thân nhất của bạn là tư duy phản biện và tính năng tự động hoàn thành trong PhpStorm. Ngoài ra, vui lòng đi sâu vào cách các chức năng này và điều tra mã của chúng. Hãy đi sâu vào một vài ví dụ
Để làm cho nó dễ dàng, tôi đã chuẩn bị một danh sách rút gọn về những gì sẽ sử dụng và khi nào nên sử dụng nó
Tại sao đôi khi chúng ta sử dụng wp_unslash?Các nhà phát triển cốt lõi của WordPress quan tâm đến bảo mật trang web và thêm dấu gạch chéo bổ sung cho các ký tự như tùy chọn, nội dung bài đăng, dữ liệu người dùng, v.v. để ngăn chặn các cuộc tấn công XSS. Các cuộc tấn công XSS là một chủ đề lớn mà chúng ta sẽ thảo luận trong một bài viết khác, nhưng tóm lại, nếu ai đó tìm cách đưa mã Làm cách nào để bảo vệ cơ sở dữ liệu WordPress của bạn?Một điều quan trọng khác mà bạn cần chú ý là làm việc với cơ sở dữ liệu. Chỉ sử dụng các chức năng của WordPress như get_posts, get_terms, get_users, v.v. cho điều này, vì chúng an toàn. Được rồi, nhưng phải làm gì với các bảng tùy chỉnh và truy vấn SQL? Vệ sinh không thể đảm bảo bảo vệ chống lại SQL injection Hãy điều tra ví dụ sau
Đoạn mã trên vẫn dễ bị tổn thương. SQL injection có thể được thông qua theo nhiều cách khác nhau
Ví dụ đa truy vấn. Về mặt kỹ thuật, PHP chỉ cho phép truy vấn đa truy vấn thông qua các hàm Thứ nhất, tin tốt là WordPress không sử dụng chúng và để bảo vệ mã của bạn khỏi các lệnh tiêm SQL đa truy vấn, bạn chỉ nên luôn sử dụng ____________7 cho các truy vấn tùy chỉnh Thứ hai, các truy vấn con chỉ có thể đưa vào các giá trị số và vào câu lệnh IN. Đây là hai quy tắc. khử trùng các giá trị số thông qua Cuối cùng nhưng không kém phần quan trọng, để tránh việc trích dẫn bị phá vỡ và việc sử dụng các câu lệnh Để tóm tắt tất cả các quy tắc này cho các truy vấn tùy chỉnh
Ngoài ra, một vài ví dụ về cách sử dụng phương pháp
Làm cách nào để tạo chức năng khử trùng tùy chỉnh?Khi bạn đang làm việc trong một dự án lớn, rất có thể bạn sẽ cần các chức năng của riêng mình để dọn dẹp dữ liệu. Trong ví dụ bên dưới, chúng ta có một hàm khá lớn để xử lý thứ tự sắp xếp
Tuy nhiên, thêm một chức năng là không đủ vì ai cũng muốn tắt tiếng một số quy tắc PHPCS?
Một vài Ở trên, chúng tôi đã thêm hai phần. 00. Phần đầu tiên đăng ký chức năng vệ sinh của bạn. Tương tự như vậy, phần thứ hai cho phép bạn bỏ qua việc bỏ dấu gạch chéo trướcĐể kết thúc, hãy luôn làm sạch đầu vào của người dùng để đảm bảo rằng dữ liệu của bạn nằm trong tầm kiểm soát của bạn. Tương tự như vậy, bạn phải vệ sinh dữ liệu một lần và càng sớm càng tốt. Ngay cả một mũi tiêm cũng có thể khiến nhiều đêm mất ngủ. Ngoài ra, nếu bạn xử lý một nguồn mở, hãy chú ý hai lần để vệ sinh Làm cách nào để khử trùng một URL trong PHP?Chúng tôi có thể làm sạch URL bằng cách sử dụng FILTER_SANITIZE_URL . Hàm này xóa tất cả các ký tự ngoại trừ chữ cái, chữ số và $-_. +. *'(),{}. \\^~[]`<>#%";/?. @&=.
Sanitize_text_field là gì?sanitize_textarea_field( string $str ). chuỗi
. Sanitizes a multiline string from user input or from the database.
Làm cách nào bạn có thể biến một chuỗi thành một con sên trong WordPress?sanitize_title( string $title, string $fallback_title = '', string $context = 'save' ) . chuỗi. Biến chuỗi thành slug, có thể được sử dụng trong URL hoặc thuộc tính HTML.
Vệ sinh thoát hiểm là gì?Thoát khỏi vệ sinh
. g. portlet tin nhắn trên bảng điều khiển). Trong những trường hợp như vậy, chúng tôi không muốn thoát khỏi HTML, nhưng chúng tôi vẫn cần "làm sạch" nó (tôi. e. xóa hoặc thoát bất kỳ thẻ HTML "không an toàn" nào, chẳng hạn như ). |