2012-05-02 37 views
9

Giả sử, trong quá trình thử nghiệm, bạn muốn kiểm tra cách phần mềm xử lý tệp "bị hỏng".Làm thế nào để một tệp "hỏng"

Tôi có hai câu hỏi:

1. Nói chung, làm thế nào để bạn xác định một tập tin "tham nhũng"? Nói cách khác, những gì tạo thành một tập tin bị hỏng?

Như một ví dụ:

Giả sử bạn cần phải thử nghiệm một "tham nhũng" tập tin .pdf.

Một đề xuất là chỉ cần lấy tệp .zip, thay đổi tiện ích mở rộng và thử nghiệm với điều đó. Tuy nhiên, tôi cho rằng bạn không thử nghiệm cách chương trình xử lý "tệp .pdf bị hỏng", nhưng đúng hơn, cách xử lý tệp .zip.

Một đề xuất khác là mở tệp và chèn/xóa byte ngẫu nhiên. Đề xuất này không sao, nhưng có một vài vấn đề:

  • Có thể (mặc dù không chắc chắn rằng các phần được sửa đổi hoặc xóa không quan trọng. Ví dụ, bạn có thể chỉ cần xóa một phần của một chuỗi lớn, sẽ sửa đổi dữ liệu, nhưng không nhất thiết phải làm hỏng tệp.
  • Có thể tệp có thể được sửa đổi sao cho chương trình sẽ từ chối đọc tệp. Ví dụ: nếu tiêu đề .pdf bị xóa thì có thể API (hoặc bất kỳ thứ gì bạn đang sử dụng) sẽ không vượt qua điểm đó và tệp không thể kiểm tra được.
  • Tương tự như dấu đầu dòng: Nếu tệp được sửa đổi đủ mạnh, thì có một đối số là tệp kết quả không còn định dạng giống với tệp gốc nữa. Vì vậy, một lần nữa, nếu bạn đã xóa tiêu đề .pdf, thì có thể tệp đó không còn là tệp .pdf nữa. Vì vậy, cố gắng kiểm tra nó không kiểm tra tệp .pdf bị hỏng, nhưng thay vào đó hãy thử nghiệm một số biến thể lẻ của tệp .pdf.

2. Khi tệp bị hỏng được xác định, bạn sẽ làm cách nào để tạo tệp?


Dưới đây là những gì tôi đã suy nghĩ cho đến nay:

A "tập tin tham nhũng" là một tập tin mà đáp ứng một cách chính xác các chi tiết kỹ thuật của các định dạng tập tin, nhưng trong đó có chứa dữ liệu/byte mà vốn đã thiếu sót .

Ví dụ duy nhất tôi có thể nghĩ là nếu bạn thay đổi mã hóa của tệp bằng cách nào đó. Sau đó, bạn có thể áp dụng phương thức này cho các tệp có định dạng tùy ý.

Cảm ơn bạn đã đọc.

+2

Câu trả lời cho những câu hỏi này phụ thuộc hoàn toàn vào định dạng tệp cụ thể và trên các loại tham nhũng mà bạn định xử lý phần mềm của mình. Không có thử nghiệm điểm nào với các vectơ đầu vào mà bạn không có ý định xử lý. –

Trả lời

2

Một đề xuất khác là mở tệp và chèn/xóa byte ngẫu nhiên.

Đây là những gì tôi làm nói chung. Trong khi tôi hiểu các vấn đề mà bạn đã đánh dấu ở trên, tôi cho rằng tệp bị hỏng nếu ứng dụng gốc không đọc được.

Ví dụ., Một xls sẽ không mở trong Excel, một docx sẽ không mở trong Word, vv

2

dễ dàng, hủy tải một tập tin (có thể là một tập tin rar).Tôi nhận được hầu hết các tham nhũng theo cách này.

1

Tôi sử dụng lệnh đầu và đuôi của lệnh linux để chia nhỏ một tệp rồi đưa chúng trở lại cùng với các byte bị thiếu hoặc bổ sung.

1

Tôi đề xuất thử nghiệm với các tệp không đầy đủ - đó là cách mà hầu hết các tệp bị hỏng được tạo bằng các lần tải xuống bị gián đoạn.

4

Định dạng tệp được xác định bởi hai điều. 1. Phần mở rộng của tệp - phải cho hệ điều hành biết định dạng tệp là gì. 2. MimeType của tài liệu. Nhiều tài liệu có phần mở rộng sai (.avi .jpg), nhưng thực sự là loại mime cho biết những gì có.

Làm thế nào để làm hỏng tài liệu? Bạn không thể chỉ thêm các byte ngẫu nhiên hoặc làm mọi thứ (tệp .txt chẳng hạn sẽ không bị hỏng)

có 2 điều bạn cần làm.

Đầu tiên - bạn thay đổi loại mime của tệp, sau đó bạn có thể thêm một số byte ngẫu nhiên. Nếu loại myme khác (không tương tự) với phần mở rộng - ví dụ "text/html" cho tệp .avi thì tệp đó không thể được chương trình nhận dạng cho loại mime đó.

Tuy nhiên, đối với các trắc nghiệm kiểm tra khác nhau, có thể cần thiết phải tạo các "phiên bản" khác nhau của các tệp bị hỏng.

Hy vọng điều đó sẽ hữu ích.

+1

Loại MIME là một điều internet; nó không áp dụng cho các ứng dụng tùy ý. –

+0

Điều đó đúng một phần. Tuy nhiên, mọi người đều cho phép định dạng tệp "đã biết" (có phần mở rộng của riêng) có mime tipe. Nếu bạn muốn tạo loại tệp của riêng bạn (tiện ích mở rộng riêng cho phép nói), bạn hoàn toàn sẽ biết điều gì có nghĩa là "tệp bị hỏng" cho tệp này. –

+0

Chỉ trong ngữ cảnh được chuyển qua ví dụ: HTTP. Các tệp được lưu trữ trên đĩa không có loại MIME; chúng chỉ là một tập hợp các byte. –

Các vấn đề liên quan