Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add privacy best practices section #229

48 changes: 48 additions & 0 deletions _includes/markdown/Structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,3 +197,51 @@ indent_size = 4
```

Developers may extend and/or customize these rules as new file formats are added to the project.

<h2 id="privacy">Privacy {% include Util/top %}</h2>

Software and services should be designed with privacy in mind, both for user trust and for potential legal reasons. The following are some general guidelines and WordPress-focused features and tactics to use. Accommodations for specific regulations such as GDPR should be determined on a case-by-case basis.

Broadly, the following areas should be considered when designing for privacy:

- What user data is collected and how it is used, including telemetry and reporting.
- Where and what user data is exposed (e.g. via REST API).
- Compliance requirements for specific user groups.
- The content and display of a privacy policy.
- Third-party services and advertisements.

### WordPress features

Since 4.9.6, WordPress provides direct support for exporting user data, removing user data, and adding a privacy policy. These do not automatically make a site compliant with a set of regulations; procedures still need to be established for response and removal timelines as well as general consideration of how data is collected and used in the first place.

Another feature to keep an eye on is the REST API, in particular any meta added to the user endpoints. Be careful that exposing meta via an endpoint for the purposes of an admin feature does not inadvertently expose it publicly or to other non-admin users.

### Privacy Development Best Practices
helen marked this conversation as resolved.
Show resolved Hide resolved

#### Projects should document user data that is collected and stored.

What data is collected and what is stored? How and where is the data stored? How and why is the data being collected? Where did the data come from?

#### Data capture should be secure and respect individual rights.

Consent must be given before the collection of personal data, both for the type of data and the purpose. Make sure consent is clear and not opted-in by default.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this include IP address/location? If so, would we want to do this outside of a GDPR compliant website?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the actual regulation matters so much as this being what "designing for privacy" means. And yes, it would include IP address and location.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the issue here has to do with what we consider to be "personal" data. It is not, for example, my view (or I think an objective reading of GDPR's view) that stock data collected by Google Analytics (that's not augmented programmatically) does not constitute anything like personal information or require disclosure. That said, many implementing GDPR are opting for a much more cautious approach, and IMO, creating a terrible UX that requires an opt in even for basic and effectively anonymized analytic data (or cases where data may not anonymized - i.e. ad trackers - but we're not collecting new data) that's especially confusing and toxic for non sophisticated visitors. Meaning, this directive in our best practices is rather vague in terms of understanding implementation guidance.

My view is that we should create an alternative practice that is similar to this, but makes it clear that by personal data we mean associated clearly identifiable information about the visitor including collection of name, DOB, phone number, email address (etc) in a contact form or by some other third party tracker.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated the language slightly here in 550e6c0


Capture as little data and anonymize it as much as possible. All data collection should be encrypted via https and data storage must be encrypted and secure. Data should only be stored as long as necessary and should be kept up to date.

#### Sites should have clear and accessible privacy policies and data request features.

Ensure the site includes a clear, easy to understand, and easily accessible privacy policy that complies with any applicable guidelines. All collection, retention, sharing and use of personal data should be described in the site privacy policy.

Ensure there is a process in place to let users easily request access to their data and to manage and report any data breaches.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to mandate this for non-GDPR websites?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Best practices are not a mandate, are they? These all seem like good things to design privacy features around anytime you're collecting user data. I guess whether we agree on that as a company is the question :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's a happy medium here which makes it sound like this is not 10up's responsibility to devise this process and make it clear that this doesn't have to be time consuming for engineering, i.e.:

"Encourage the site owner / manager to ensure that there is a process in place to let users easily request access to their data and to manage and report any data breaches. From a development perspective, this can be as basic as including contact information in the privacy policy."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in d4fe977


#### Pay attention to third-party services.

Third-party services and advertisements used should also be compliant with any regulations - any service or scripts running on the site should be evaluated for compliance.

#### Resources
- [Privacy Policy Snippets](https://github.com/gdpr-compliance/info/blob/master/Privacy-policy-snippets.md)
- [Guide to the General Data Protection Regulation (GDPR)](https://ico.org.uk/for-organisations/guide-to-the-general-data-protection-regulation-gdpr/)
- [The Digiday guide to GDPR](https://digiday.com/wp-content/uploads/2018/01/GDPR-download.pdf)
- [An Introduction to GDPR Compliance for WooCommerce Stores](https://woocommerce.com/2017/12/gdpr-compliance-woocommerce)
- [What Does the New Data Regulation Mean for Your Website, Business and Data?](https://www.codeinwp.com/blog/complete-wordpress-gdpr-guide/)
- [The GDPR regulations](http://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32016R0679&from=EN)