Shared responsibility model for Canva Apps
Background
Shared responsibility models clarify security responsibility between a platform provider and developers building apps that connect to that platform.
Building apps that connect to Canva means that developers share the same users as Canva. As a result, developers must take some responsibility to protect user data and privacy, which can differ from other Software as a Service (SaaS) product expectations. Canva, as a provider, takes some responsibility, but not all of the security responsibility.
Read through the following sections to understand your security responsibilities, as well as Canva's responsibilities.
We reserve the right to amend this page from time to time at our sole discretion.
App concepts
Canva apps
Apps are plugins that add features to Canva. They run in the browser and are built with standard web technologies, such as JavaScript. Apps are built using the Canva Apps SDK, which is made up of libraries and capabilities that combine to build feature-rich apps. The Canva Apps SDK enables your app to:
- Use standard web technologies to render a user interface.
- Use the Fetch API to integrate with the app's backend.
- Use the Apps SDK to integrate with the core Canva experience.
App architecture
The App architecture is comprised of the following components:
- App SDK Libraries - methods that let you invoke App SDK functionality.
- UI Components (optional) - a component suite that lets you define app user interfaces using a React-based component library.
- App backend (optional) - an application server that allows you to complete complex computations, expose additional resources, or store additional information your users require.
App changes
Security responsibilities can change as you build your app. For example, if you're providing complex computations through an app backend, and storing additional information for users, you'll have additional responsibilities to maintain the security of the app backend. It's important to be aware of how your responsibilities could change if your app changes scope.
Security operations
Vulnerability management and disclosure
Minimize security incidents through early identification of vulnerabilities and timely remediation. Provide a framework to manage the constantly changing vulnerability landscape.
Monitoring and alerting
Logging
Incident response
As the frequency of security vulnerabilities increases, your incident response plan becomes crucial. It's essential to have effective measures in place to detect and respond to unauthorized access to your systems and data.
Network security
Ensure appropriate network security controls are implemented preventing threat actors from accessing sensitive information while requests are in transit between services.
Infrastructure security
Maintain the integrity, confidentiality, and availability of underlying infrastructure, and provide a safe computing environment.
Disaster recovery
Data, source code, and other business assets underpin your apps and related system functionality. It's important to minimize the impact of accidental or malicious disasters with an action plan or other recovery mechanism.
Trust and safety
User identity and access management
Denial-of-service prevention
Denial-of-Service (DoS) attacks deliberately and maliciously disrupt API, system, and site operations. DoS attacks degrade user experience. Protect your app with detection and mitigation mechanisms.
Abuse prevention
App
Authenticating requests to the app
Ensure that all requests made to apps are sufficiently authenticated.
Authorizing requests from the app
Ensure that every request made from apps to your backend is sufficiently authorized.
Authorizing requests to the app
Ensure that every request made from your backend to your app is sufficiently authorized.
App framework
Ensure frameworks and third-party libraries used to build apps are free of security bugs, and you’re applying fixes in line with the Canva API and App Developer Terms.
Input validation and output encoding
Ensure sufficient input validation and output encoding within apps. For example, when returning HTML to render in the app's UI, ensure that you use HTML entity encoding for variables added to the web template. This helps protect users from attacks like cross-site scripting.
Business logic
Protect the legitimate process flow of an app, and don't expose the process flow in ways that results in negative consequences.
Tenant security
Data storage
Appropriately manage data throughout its lifecycle, from data entry to data destruction.
Secure development activities
A secure software development framework is a set of functional practices that, when applied appropriately, can achieve the following:
- Reduce the number of vulnerabilities in released software.
- Reduce the potential impact of the exploitation of undetected or unaddressed vulnerabilities.
- Address the root causes of vulnerabilities to prevent reoccurrences.