1. Định nghĩa API là gì?
1.1 API là gì?
API được viết tắt bởi cụm từ Application Programming Interface, dịch ra là giao diện lập trình ứng dụng. Trong lĩnh vực lập trình website, API một phương thức trung gian giúp kết nối các ứng dụng và các thư viện khác lại với nhau.API được biết đến với khả năng truy xuất đến một tệp các hàm thường dùng, từ đây những dữ liệu giữa các ứng dụng có thể tiến hành trao đổi.
1.2 Web API là gì?
Web API là hệ thống API được sử dụng trong các hệ thống website.Cũng giống như định nghĩa API là gì đã đề cập phía trên, Web API là một phương thức dùng để kết nối và cho phép các ứng dụng khác nhau có thể trao đổi dữ liệu và giao tiếp được với nhau.Những dữ liệu mà Web API trả về hầu hết sẽ ở dạng XML hoặc JSON thông qua hai giao thức HTTP và HTTPS.
Một số ưu điểm của Web API:
- Dễ viết, chính xác hơn so với framework WCF, Web service như trước đây.
- Nâng cao tính trải nghiệm người dùng qua UX.
- Đáp ứng đủ các nhu cầu phổ biến về REST và HTTP.
- Hỗ trợ tốt các tính năng và thành phần của HTTP như:caching, versioning, HttpRequestMessage, HttpResponseMessage,…các MVC như: routing, container, controller,…
- Có tính năng bảo mật cao, xác nhận 2 chiều khi được request.
- Dữ liệu trả về ở nhiều định dạnh phổ biến khác nhau từ XML đến JSON.
- Host được nhiều loại client khác nhau từ ứng dụng nền web cho tới các phần mềm desktop.
1.3 API key là gì?
API Key là khoá dùng để cấp quyền cho các ứng dụng, phần mềm để chúng nhận diện, kết nối và tiến hành trao đổi thông tin dữ liệu với nhau. Thông thường API Key thường được sử dụng để kiểm soát, theo dõi API và hoạt động như một mã định danh duy nhất.2. Ứng dụng của API
API thường được ứng dụng tại Web API, trên hệ điều hành và thư viện phần mềm. Cụ thể như sau:- Web API: API sẽ được sử dụng trong những hệ thống website. Và nếu website đã sử dụng Web API đều cho phép kết nối hoặc nhập các cơ sở dữ liệu, lấy các dữ liệu.
- Hệ điều hành: Hai hệ điều hành Window và Linux là hai hệ điều hành có rất nhiều API. Họ cung cấp các tài liệu API là đặc tả các hàm, cung cấp những phương thức kết nối. Điều này sẽ giúp những lập trình viên lập trình ra những ứng dụng có khả năng tương tác với hệ điều hành một cách hiệu quả
- Thư viện phần mềm (Framework): Có rất nhiều cách triển khai khác nhau đối với 1 API. Điều này sẽ giúp một chương trình viết bằng một ngôn ngữ có thể sử dụng được thư viện bằng một ngôn ngữ khác. Và API sẽ mô tả và đề ra quy định những hành động mong muốn mà các thư viện này cung cấp.
Ứng dụng của API là gì?
3. Những ưu nhược điểm của API
Sau đây là những ưu điểm và nhược điểm của API.Ưu điểm của APIAPI là mã nguồn mở.
- Nhờ vào internet có thể kết nối mọi lúc vì API.
- API giao tiếp hai chiều và cần phải được xác nhận trong các giao dịch vậy nên thông tin rất đáng tin cậy.
- Cấu hình đơn giản, nâng cao trải nghiệm đối với người dùng khi so sánh với WCF.
- Chức năng RESTful (cách sử dụng phương thức HTTP, cách định dạng các URL cho ứng dụng web để quản lý nguồn) được hỗ trợ đầy đủ.
- Chi phí phát triển, đưa vào vận hành và chỉnh sửa tốn khá nhiều chi phí.
- Cần phải có kiến thức chuyên sâu về API.
- Trong một vài trường hợp có thể bị tấn công do vấn đề liên quan đến bảo mật.
API là mã nguồn mở, có thể kết nối mọi lúc
4. Tính bảo mật của API
Dưới đây là 2 lỗi thường gặp liên quan đến bảo mật API, cụ thể:4.1 SQL Injection
Đây là lỗi khá phổ biến liên quan đến bảo mật API. Những kẻ tấn công sẽ lợi dụng sơ hở về câu truy vấn của các ứng dụng, sau đó sẽ chèn thêm một đoạn SQL với mục đích làm thay đổi câu truy vấn ban đầu. Khi này, kẻ tấn công có thể hành động mọi thao tác như một nhà quản trị web dựa trên cơ sở dữ liệu của ứng dụng.Cách khắc phục: Có thể sử dụng Regular Expression để loại bỏ những ký tự lạ hoặc cũng có thể sử dụng những hàm có sẵn để hạn chế tối đa xuất hiện các lỗi.
4.2 Spam Request
Lỗi này sẽ xuất hiện như sau: Một người sau khi đã hoàn thành đăng ký tài khoản (username và mật khẩu), kẻ tấn công sẽ liên tục gửi những yêu cầu đến máy chủ, máy chủ tiếp nhận thông tin và sẽ tiến hành đăng ký liên tục, lâu dần sẽ dẫn đến tình trạng quá tải.Cách khắc phục: Hãy cài đặt thêm những yêu cầu để quá trình hoàn thành trở nên phức tạp hơn. Ví dụ thêm câu hỏi bảo mật, thêm thời gian chờ cho khách hàng trước khi chuyển sang bước tiếp theo…
5. Những cách củng cố tính bảo mật API
- Mã hoá những dữ liệu được truyền đi bằng cách sử dụng chứng chỉ bảo mật SSL để mã hoá các dữ liệu quan trọng.- Chữ ký số bao gồm một chuỗi ký tự biểu trưng cho 1 người sử dụng. Hãy lưu trong cơ sở dữ liệu và chỉ cung cấp trong trường hợp nhập đúng mật khẩu và tên.
- Không nên sử dụng các mật khẩu cố định hoặc nhúng, hãy sử dụng những mật khẩu dài, tránh sử dụng thông tin cá nhân nhân.
- Kiểm tra thẩm quyền người sử dụng và xác thực ứng dụng thay vì chỉ kiểm tra người sử dụng cuối.
Trên đây là toàn bộ thông tin giải đáp API là gì, ứng dụng của API, những ưu điểm - hạn chế của API cũng như những cách khắc phục bảo mật. Hy vọng bạn đã có thêm nhiều kiến thức về lập trình website. Chúc website của bạn hoạt động thật hiệu quả nhé.
Đăng nhận xét