1. Deep Link Là Gì?
Deep Link là một kỹ thuật quan trọng trong phát triển ứng dụng di động, nhằm tối ưu hóa trải nghiệm người dùng và tăng cường tương tác trong ứng dụng. Nó cho phép người dùng truy cập trực tiếp đến một màn hình hoặc nội dung cụ thể của ứng dụng mà không cần phải đi qua nhiều bước.
Sự phổ biến của Deep Link ngày càng gia tăng, đặc biệt trong các ứng dụng thương mại điện tử và marketing liên kết, nhờ vào những lợi ích vượt trội mà nó mang lại:
- Tăng cường trải nghiệm người dùng
- Tối ưu hóa các chiến dịch quảng cáo và tiếp thị
- Tạo sự liên kết mạnh mẽ giữa website và ứng dụng
- Hỗ trợ phân tích và thống kê hành vi người dùng
Với khả năng tối ưu hóa tương tác và thiết lập liên kết chặt chẽ giữa người dùng và ứng dụng, Deep Link đóng vai trò quan trọng trong thành công của ứng dụng di động trong thời đại hiện nay.
2. Phân Loại Deep Link
Deep Link trong ứng dụng Android được chia thành hai loại chính:
- Deep Link
- App Link
Dưới đây là bảng so sánh giữa hai loại này:
Deep Link | App Link |
---|---|
URL scheme | Có thể tùy chỉnh |
Action | Có thể tùy chỉnh |
Category | Có thể tùy chỉnh |
Liên kết xác thực | Không yêu cầu |
Trải nghiệm người dùng | Có thể hiển thị hộp thoại lựa chọn ứng dụng để mở liên kết |
Tương thích hệ điều hành | Tất cả phiên bản Android |
Có thể thấy rằng Deep Link linh hoạt hơn trong cấu hình, trong khi App Link mang lại trải nghiệm tốt hơn cho người dùng.
2.1. Khai Báo Deep Link
Để khai báo Deep Link, lập trình viên cần tạo các thẻ <intent-filter>
trong thẻ <activity>
tương ứng trong tệp tin AndroidManifest.xml. Dưới đây là ví dụ mẫu:
<!-- AndroidManifest.xml -->
<activity android:name="ActivityX">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="example" android:host="myapp" />
</intent-filter>
</activity>
2.2. Khai Báo App Link
Khai báo App Link phức tạp hơn một chút. Trước tiên, bạn cũng cần khai báo trong tệp AndroidManifest.xml:
<!-- AndroidManifest.xml -->
<activity android:name="ActivityX">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="myapp" />
<data android:scheme="http" android:host="myapp" />
</intent-filter>
</activity>
Ngoài ra, bạn cần tạo một tệp tin JSON gọi là Digital Asset Link và đưa tệp này lên website liên quan tới App Link tại đường dẫn https://domain.name/.well-known/assetlinks.json
.
3. Những Rủi Ro Bảo Mật Khi Sử Dụng Deep Link
Khi cấu hình Deep Link không an toàn, có thể gây ra những lỗ hổng bảo mật nghiêm trọng. Dưới đây là một số rủi ro thường gặp và kịch bản tấn công có thể xảy ra:
3.1. Khai Báo Trùng Lặp
Deep Link có thể được khai báo cho nhiều ứng dụng cùng một lúc. Khi người dùng kích hoạt một Deep Link, họ có thể thấy một bảng lựa chọn giữa các ứng dụng. Điều này có thể dẫn đến việc người dùng mở một ứng dụng giả mạo, gây ra rủi ro bị đánh cắp dữ liệu.
3.2. Xử Lý Dữ Liệu Không An Toàn Từ Deep Link
Deep Link có thể chuyển giao dữ liệu qua các tham số trên URL. Nếu lập trình viên không xác thực và lọc dữ liệu đúng cách, ứng dụng có thể bị tấn công. Kẻ xấu có thể lừa người dùng nhấp vào Deep Link, và nếu ứng dụng đó đã được cài đặt, mã độc hại có thể được thực thi ngay lập tức.
3.3. Bỏ Qua Quy Trình Nghiệp Vụ
Android có lỗ hổng nổi tiếng được gọi là Exported Activity. Khi bị khai thác, lỗ hổng này cho phép người dùng bỏ qua các bước quan trọng trong quy trình nghiệp vụ. Ví dụ, một chức năng mua hàng mà không qua các bước xác nhận sẽ dẫn đến rủi ro lớn như đặt hàng sai, thông tin thanh toán không chính xác...
Trên đây là tóm tắt về Deep Link và các lỗ hổng bảo mật có thể phát sinh do cấu hình không đúng. Bạn có biết những cách tấn công nào khác liên quan đến Deep Link không? Hãy chia sẻ ý kiến của bạn trong phần bình luận bên dưới!
source: viblo