Lọc HTML đầu vào

filter_input() là một hàm sẵn có trong PHP, được sử dụng để lấy biến bên ngoài cụ thể theo tên và lọc nó. Hàm này được sử dụng để xác thực các biến từ các nguồn không an toàn, chẳng hạn như đầu vào của người dùng từ biểu mẫu. Chức năng này rất hữu ích để ngăn chặn một số mối đe dọa bảo mật tiềm ẩn như SQL Injection. cú pháp

filter_input( $type, $variable_name, $filter, $options)

Thông số. Hàm này chấp nhận bốn tham số như đã đề cập ở trên và được mô tả bên dưới

  • loại $. Là tham số bắt buộc dùng để kiểm tra kiểu dữ liệu nhập vào. Danh sách các bộ lọc là
    • INPUT_GET
    • INPUT_POST
    • INPUT_COOKIE
    • INPUT_SERVER
    • INPUT_ENV
  • $biến_tên. Nó là tham số bắt buộc. Nó được sử dụng để giữ tên của biến sẽ được kiểm tra
  • bộ lọc $. Nó là một tham số tùy chọn. Nó giữ tên hoặc ID của bộ lọc. Nếu tham số này không được đặt thì FILTER_DEFAULT sẽ được sử dụng
  • tùy chọn $. Nó là một tham số tùy chọn và được sử dụng để chỉ định một hoặc nhiều cờ/tùy chọn sẽ sử dụng. Nó kiểm tra các tùy chọn và cờ có thể có trong mỗi bộ lọc. Nếu các tùy chọn bộ lọc được chấp nhận thì cờ có thể được cung cấp trong trường "cờ" của mảng

Giá trị trả về. Nó trả về giá trị của biến khi thành công hoặc Sai khi thất bại. Nếu tham số không được đặt thì trả về NULL. Nếu cờ FILTER_NULL_ON_FAILURE được sử dụng, nó sẽ trả về FALSE nếu biến không được đặt và NULL nếu bộ lọc bị lỗi. ví dụ 1.  

Các ứng dụng dựa trên web như blog, hệ thống quản lý nội dung (CMS), diễn đàn, trình tổng hợp nguồn cấp tin tức và wiki sử dụng văn bản do người dùng gửi được triển khai rộng rãi ngày nay. Thường thì các ứng dụng cho phép mã HTML trong văn bản;

Thông số kỹ thuật HTML không chỉ là về các phần tử và thuộc tính HTML. Chẳng hạn, có các quy tắc liên quan đến tính hợp lệ của các ký tự và thực thể ký tự (văn bản thay thế như '&' được sử dụng để biểu thị dấu và '&'). Do đó, văn bản thuần túy trong đầu vào không có đánh dấu HTML rõ ràng vẫn là HTML về mặt kỹ thuật

Người dùng có thể nhập trực tiếp mã HTML vào văn bản hoặc gián tiếp nhập mã bằng cách sử dụng BBCode (trong đó các từ thay thế như '[url=. ]' được sử dụng để đại diện cho mã HTML như ''), trình soạn thảo WYSIWYG (What You See Is What You Get) như TinyMCE, v.v. Mặc dù cả BBCode và các hệ thống WYSIWYG dựa trên trình duyệt đều có khả năng tạo ra phần đánh dấu HTML chính xác nhất mà không có lỗi đánh máy hoặc cú pháp, chúng có thể chỉ có một khả năng hạn chế để hạn chế phần đánh dấu (e. g. , để không cho phép một số thuộc tính nhất định đối với các phần tử HTML) và chúng thường không bao gồm tất cả HTML (e. g. , để xử lý phần tử 'biểu mẫu')

***

Sự hiện diện của đánh dấu HTML trong văn bản đầu vào đặt ra một số vấn đề nhất định. Mã có thể không tuân thủ đúng tiêu chuẩn HTML; . g. , đầu vào dành cho một trang web sử dụng XHTML 1. 0 Strict DTD có thể đang sử dụng thẻ 'u' không dùng nữa để mô tả văn bản được gạch chân. Người gửi có thể vô tình nhập sai mã HTML. Chẳng hạn, anh ta có thể đã quên đặt thẻ đóng hoặc lồng các phần tử HTML vào đúng cách. Điều này cũng có thể làm cho các trang web không tuân thủ tiêu chuẩn. Việc tuân thủ tiêu chuẩn kém có thể làm hỏng hiển thị của trang web hoặc nó có thể khiến việc sử dụng thẻ có mục đích trở nên vô ích

Vấn đề thứ hai với đánh dấu HTML là vấn đề bảo mật. Mã HTML dành cho các cuộc tấn công kịch bản chéo trang (XSS) có thể đã được đưa vào bởi một người nào đó có ác ý. Tương tự, mã HTML có thể được sử dụng để spam các trang web có liên kết. Các ký tự HTML không hợp lệ như ký tự rỗng cũng như các thực thể ký tự không hợp lệ trong đầu vào có thể làm hỏng trình duyệt hoặc ngăn trang web hiển thị

Mã HTML, ngay cả khi hợp lệ, vẫn có thể làm xáo trộn thiết kế và bố cục của các trang web sử dụng văn bản đầu vào, chẳng hạn như trình bày văn bản theo kích thước hoặc kiểu dáng gây rối. Nội dung của một trang web có thể được sử dụng bên ngoài trang web (e. g. , trên các trang web tổng hợp nguồn cấp tin tức) và thậm chí được hiển thị bằng ứng dụng khách không phải là trình duyệt (e. g. , trình đọc XML độc lập) và đầu vào không hợp lệ của người dùng có thể làm gián đoạn chức năng của các bản phân phối đó

***

Do đó, điều quan trọng là phải kiểm tra văn bản do người dùng gửi để đảm bảo tính bảo mật cũng như các tiêu chuẩn và việc tuân thủ chính sách quản trị. Điều này nói chung đúng cho bất kỳ trường hợp nào văn bản từ các nguồn bên ngoài đang được sử dụng (e. g. , trình tổng hợp nguồn cấp tin tức hiển thị các mục nguồn cấp tin tức được thu thập từ những người khác) và cũng áp dụng cho các trường hợp khi bất kỳ đánh dấu HTML nào được tạo gián tiếp bởi trình phân tích cú pháp BBCode, trình chỉnh sửa WYSIWYG, v.v.

Các ứng dụng độc lập như 'HTML gọn gàng' và mã dựa trên tập lệnh có sẵn cho mục đích này. Các tiện ích như vậy là các bộ lọc văn bản đầu vào hiệu quả để xử lý, làm sạch và làm sạch văn bản. Chúng xử lý các ký tự và thực thể ký tự không hợp lệ cũng như các phần tử và thuộc tính HTML bất hợp pháp hoặc không được phép bằng cách xóa chúng hoặc chuyển đổi chúng thành văn bản thuần túy hoặc đánh dấu được phép. Chúng cũng cân bằng các thẻ được sử dụng để biểu thị các phần tử, đảm bảo rằng các phần tử được lồng đúng cách, v.v.

Một số bộ lọc HTML có thể kiểm tra tính chính xác của các giá trị thuộc tính và thậm chí có thể sửa đổi chúng (e. g. , để làm xáo trộn địa chỉ email như một biện pháp chống thư rác). Các tập lệnh lọc khác nhau hiện có có các khả năng và khả năng tùy chỉnh khác nhau. Cũng có thể sử dụng song song hai bộ lọc khác nhau để có hiệu ứng lọc mong muốn. Nói chung, các bộ lọc có nhiều khả năng hơn cần nhiều thời gian và tài nguyên hơn (chu kỳ CPU và bộ nhớ) để xử lý văn bản đầu vào

***

Một số bộ lọc/bộ lọc HTML tốt có sẵn trong các ngôn ngữ kịch bản khác nhau là. cho Perl, HTML Scrubber;

Tập lệnh htmLawed PHP, trong một tệp duy nhất, ~45-kb, có tốc độ nhanh, mức tiêu thụ bộ nhớ thấp và cung cấp khả năng cấu hình cao. Bên cạnh việc bao gồm tất cả các khía cạnh của đánh dấu HTML như được mô tả trong các tiêu chuẩn HTML/XHTML hiện tại, nó cũng có thể xử lý các phần tử và thuộc tính phổ biến nhưng không chuẩn như 'embed'. Các khả năng bổ sung của nó bao gồm kiểm tra giao thức URL, các biện pháp chống spam email và chống liên kết, chuyển đổi URL tương đối/tuyệt đối, chuyển đổi các phần tử và thuộc tính không dùng nữa và làm đẹp mã

Để tìm hiểu thêm về cách sử dụng htmLawed trong các ứng dụng của bạn, vui lòng truy cập trang web htmLawed. http. //www. tin sinh học. org/phplabware/internal_utilities/htmLawed

Bộ lọc PHP HTML Lớp chống XSS của PHP - Tinh lọc HTML PHP - Thư viện XSS - Tinh lọc HTML PHP - Tinh lọc HTM - Lớp khử trùng PHP - bộ lọc đầu vào chống XSS - Tuân thủ tiêu chuẩn HTML - Thẻ cân bằng PHP - Cân bằng thẻ HTML - Tập lệnh lọc PHP. Thư viện bộ lọc PHP. So sánh HTMLPurifier Trình lọc HTML. Thẻ lọc các thành phần thuộc tính Các tiêu chuẩn thông số kỹ thuật XHTML. Danh sách cho phép các thẻ danh sách chặn. Thông số W3C

Làm cách nào để lọc dữ liệu trong HTML?

Cách sử dụng. .
Tải xuống và đặt tệp JavaScript jquery-data-filter. tối thiểu. js sau jQuery. .
Phân loại dữ liệu của bạn bằng các thuộc tính dữ liệu như sau. xem nguồn. < div id = "danh sách ngôn ngữ" >.
Lọc danh sách theo tên dữ liệu. // ko có kết quả. $( ". lọc-tôi"). bộ lọcData("nút"). chiều dài. .
Lọc danh sách theo giá trị dữ liệu

Làm cách nào để tạo bộ lọc hộp kiểm trong HTML?

Cách sử dụng. .
Add the CSS class filterable to elements and group them using HTML data attributes: < div class = "items" > .. .
Tạo các hộp kiểm để lọc qua các yếu tố của bạn. .
Đính kèm hàm demano vào vùng chứa trên cùng. .
Tạo kiểu cho các phần tử đã khớp và chưa khớp. .
Tùy chọn và mặc định

Làm cách nào để tạo bộ lọc trong JavaScript?

Bộ lọc .
Tạo một mảng trống filterArr
Lặp qua các phần tử mảng
Được gọi là hàm filterFunc với phần tử hiện tại làm đối số
Nếu kết quả là true, đẩy phần tử vào mảng filterArr
Trả về mảng filterArr sau khi đi qua tất cả các phần tử

Làm cách nào để lọc div trong JavaScript?

/* Bộ lọc Javascript
---------------------------------*/
// làm động các div khi bắt đầu
mục var = tài liệu. truy vấnSelectorAll('. phần bộ lọc div');
hoạt hình (mục);
// bộ lọc khi nhấp chuột
mỗi('. liên kết bộ lọc li a', function(el) {