Ca kiểm thử cho chức năng Xóa

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web (Trang 70 - 76)

Chức năng Xóa thƣờng gặp các lỗi SQL Injection, CSRF và các lỗi liên quan đến việc xác thực phân quyền (lỗi leo quyền). Phƣơng pháp tiếp cận hệ thống để kiểm tra các lỗi này là dựa vào việc nhập dữ liệu đầu vào trên giao diện hoặc sửa đổi tham số trên URL có sử dụng các công cụ hỗ trợ nhƣ firebug. Chúng tôi thiết kế các ca kiểm tra cho chức năng Xóa nhƣ trong bảng 2.8.

Bảng 2.8. Các ca kiểm thử với màn hình có chức năng Xóa

Mã ca

kiểm thử Mục đích kiểm thử Các bƣớc thực hiện

Kết quả mong muốn Ghi chú Link xóa F6_R1_1 SQL Injection (Kiểm tra lỗi xoá hết các bản ghi hay không khi thêm xâu or 1=1

1.Trên phần mềm, thực hiện các action Xóa

2. Trên firebug, Copy URL trên tab Consolse/All (URL tƣơng ứng thao tác xóa) => chuột phải chọn Copy Location with Parameters

3. Paste đoạn URL vừa copy đƣợc ra notepad: thay tham số của URL

Ví dụ: 1 action xóa có URL nhƣ sau:

http://www.myhost.com/deleteAction?id=10

Khi đó thêm xâu or 1=1 vào cuối URL trên (sau ID =10) hoặc chuỗi or '1'='1'

URL sau khi sửa:

http://www.myhost.com/deleteAction?id=10 or 1=1

4. Copy lại đoạn URL vừa sửa => mở 1 tab mới ở firefox => paste đoạn URL mới vào thanh ađress => enter 5. Kết quả mong muốn nhƣ từng case đã mô tả

Hệ thống thông báo không hợp lệ hoặc hiển thị trang trắng - Phạm vi kiểm thử: Đối với URL có tham số - Biểu hiện lỗi:

+ Hệ thống thực hiện xóa tất cả dữ liệu trong bảng tƣơng ứng

+ Hoặc ra trang lỗi (Ví dụ: khi dữ liệu có ràng buộc…)

Hành động (action)

F6_R4_2

Kiểm tra xác thực, phân quyền (Kiểm tra URL

Manipulation - Lỗi leo quyền với các action có phân quyền thực hiện)

1. Đăng nhập bằng user 1

2. Sửa giá trị của trƣờng đƣợc phân quyền: có thể thực hiện 1 trong các cách sau:

- Cách 1: Vào firebug/ HTML/ di chuyển con trỏ đến trƣờng đƣợc phân quyền miền dữ liệu => Sửa Value/ID = Value/ID tồn tại trong DB, nhƣng là miền dữ liệu không thuộc quyền của user 1 => thực hiện action

- Cách 2:

+ Tab 1: Thực hiện thao tác/ Copy Location with Parameters của thao tác

+ Tab 2: Paste link trên thanh ađress. Nếu cần thì: => sửa ID/tham số của bản ghi vừa thực hiện thao tác = 1 ID/tham số tồn tại trong DB

=> sửa các tham số, nếu hệ thống tự reset tham số đó khi thực hiện thao tác (VD: 1 số hệ thống đƣợc xử lý reset token trƣớc mỗi thao tác nhƣ thêm, sửa, xóạ..)

+ Tab 1: Đăng xuất khỏi hệ thống

+ Tab 2: enter để chạy link

<Với trƣờng hợp copy link with paramater mà không đƣợc thì tester có thể dùng tamper để test case này - có hƣớng dẫn trong file KyNang_Test_ATTT>

Thông báo không có quyền thực hiện action

- Phạm vi kiểm thử: Action làm thay đổi DL trong DB (thêm, sửa, xóa, download, upload, import, action nghiệp vụ quan trọng...) - Biểu hiện lỗi: Thực hiện đƣợc action với bản ghi có id/tham số vừa sửa

62 F6_R4_3

Kiểm tra xác thực, phân quyền (Kiểm tra URL

Manipulation - Lỗi leo quyền - 2 user với các action có phần quyền Miền dữ liệu) 1. Firefox: + Đăng nhập bằng user 1

+ Sửa giá trị của trƣờng đƣợc phân quyền: Vào firebug-> HTML-> di chuyển con trỏ đến trƣờng đƣợc phân quyền miền dữ liệu -> lấy Value/ID

2. Chrome:

+ Đăng nhập bằng user 2

+ Sửa giá trị của trƣờng đƣợc phân quyền: Vào firebug-> HTML-> di chuyển con trỏ đến trƣờng đƣợc phân quyền miền dữ liệu -> Sửa Value/ID = Miền dữ liệu thuộc quyền của user 1, không thuộc quyền của user 2

+ Thực hiện action (Chú ý: khi thực hiện action, user 1 ở trình duyệt firefox vẫn đang đăng nhập và chƣa bị hết session) Thông báo không có quyền thực hiện action - Phạm vi kiểm thử: Các action có liên quan đến phân quyền miền dữ liệụ VD:

+ Đơn vị có phân quyền miền DL cho từng user + Combo, listbox: có phân quyền mỗi user 1 miền + Chức năng mà mỗi user có phạm vi quyền khác nhau (thêm, sửa, xóa, download, upload …) + Chú ý: 1 số trƣờng hợp thêm mới mà không gửi value/ ID đƣợc phân quyền miền DL lên server thì thƣờng không cần check lỗi này

- Biểu hiện lỗi: Hệ thống cho phép thực hiện action trên trên Miền dữ liệu không đƣợc phân quyền (lỗi leo quyền)

F6_R4_4

Kiểm tra xác thực, phân quyền (Kiểm tra URL

Manipulation - Lỗi leo quyền với các action có ràng buộc quyền thực hiện )

1. Đăng nhập bằng user 1

2. Chọn dữ liệu mà user 1 không có quyền thực hiện action (do có ràng buộc, VD: bản ghi bị khóa - không cho phép thực hiện action): lấy ID dữ liệu của thao tác 3. Chọn dữ liệu mà user 1 có quyền thực hiện: sửa ID dữ liệu của thao tác = ID lấy đƣợc ở bƣớc 2

4. Thực hiện action Thông báo không có quyền thực hiện action (việc check validate các ràng buộc phải thực hiện trên server) - Phạm vi kiểm thử: Check với trƣờng hợp: + Các action tác động đến các DL đã bị ràng buộc không cho phép thực hiện action (VD: Thêm, sửa, xóa… với các DL đã bị khóa hoặc hết hiệu lực, vv...).

+ Và việc validate các ràng buộc này chỉ thực hiện phía client, không check trên server

- Biểu hiện lỗi: Hệ thống cho phép thực hiện action với DL đã có ràng buộc không cho phép thực hiện (VD: Dữ liệu đã bị khóa, hoặc đã hết hiệu lực…)

64 F6_R3_5 CSRF (Kiểm tra lỗi với các chức năng - action tác động đến DB) - Cách 1: 1. Mở firebug

2. Vào màn hình nhập đầy đủ thông tin (chƣa nhấn action)

3. Gõ lệnh java script: tctResetToken("<giá trị token

mới>") để reset lại toàn bộ token trƣớc khi nhấn action

4. Nhấn action

5. Kiểm tra hồi đáp từ ứng dụng

- Cách 2:

1. Ứng dụng: Vào màn hình nhập đầy đủ thông tin (chƣa nhấn action)

2. Tamper data: click start 3. Ứng dụng: Nhấn action

3. Tamper data: Click Tamper => Sửa trƣờng value của tất cả các Token trong Post data = 1 giá trị bất kỳ => submit. Tuy nhiên, với 1 số trƣờng hợp thì server lại check giá trị token đc gửi kèm trong link, chứ không phải trong post data, khi đó cách test này không chính xác

4. Ứng dụng: Kiểm tra hồi đáp từ ứng dụng

Chƣơng trình thông báo Token không hợp lệ. - Phạm vi kiểm thử: Mỗi action tƣơng ứng 1 case (thƣờng chỉ check với các chức năng làm thay đổi DL trong DB (Thêm, sửa, Xóa, action quan trọng khác ...) + các action quan trọng

- Biểu hiện lỗi:

+ Không tìm thấy token (không gửi token lên server)

+ Hoặc vẫn thực hiện thao tác thành công

F6_R12_6 Để lộ thông tin do xử lý không đúng cách (Không bắt exception dẫn đến full ra trang lỗi khi gặp ngoại lệ)

1. Dùng các tool hỗ trợ để tạo DL ngoại lệ gửi lên server (VD: firebug, tamper datạ..)

Ví dụ:

+ Với Tìm kiếm: Có thể xóa control là tiêu chí tìm kiếm => Tìm kiếm

+ Với Thêm mới/ Sửa: nhập DL quá maxlength của trƣờng trong DB. Cách thực hiện

=> Chỉnh lại maxlength của control (VD: textbox) bằng firebug:

=> Vào Firebug/ HTML/ Click con trỏ inspect (phía trên, bên trái Firebug)

=> Click vào control trên chƣơng trình

=> Vào firebug sửa maxlength (maxsize) của textbox quá maxlength lƣu trƣờng đó trong DB (Hệ thống cho phép lƣu tối đa 10 ký tự trong DB, sửa thành 20 ký tự) => Nhập DL lớn hơn Maxlength thực (10 ký tự) => Nhấn nút thực hiện: Thêm mới/ Sửa/ Đăng nhập/ ….

+ Với Xóa: Vào firebug xóa ID của bản ghi đƣợc click action xóa => Xóa

3. Thực hiện action Hệ thống forward sang 1 trang thông báo "Có lỗi xảy ra" - Phạm vi kiểm thử: Tất cả các action trên màn hình (Tìm kiếm, thêm, sửa, xóa, nghiệp vụ, …)

- Biểu hiện lỗi: Hệ thống full ra exception do dev chƣa bắt ngoại lệ

66

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web (Trang 70 - 76)

Tải bản đầy đủ (PDF)

(114 trang)