Privacy Guidance for Joomla Extensions: Difference between revisions

From Joomla! Documentation

No edit summary
m Marked for translation
Line 1: Line 1:
 
<noinclude><languages /></noinclude>
{{Top portal heading|color=white-bkgd|icon=lock|icon-color=#5091cd|size=3x|text-color=#333|title=
{{Top portal heading|color=white-bkgd|icon=lock|icon-color=#5091cd|size=3x|text-color=#333|title=
Find your extension’s Achilles heel (weakness)<br/> in terms of personal data protection  
<translate>Find your extension’s Achilles heel (weakness)<br/> in terms of personal data protection</translate>
}}
}}
{{-}}
{{-}}


This is a compliance audit template to map the GDPR compliance level of your Joomla! extensions. This workflow is based on the [https://github.com/joomla/cross-cms-compliance/blob/master/audit-your-software-extension.md v1 draft] devised by Achilleas Papageorgiou ([https://volunteers.joomla.org/teams/compliance-team Joomla! Compliance team]) for the cross-CMS privacy working group where representatives from the communities of WordPress, Drupal, Umbraco and of course Joomla! are collaborating in privacy.  
<translate>This is a compliance audit template to map the GDPR compliance level of your Joomla! extensions. This workflow is based on the [https://github.com/joomla/cross-cms-compliance/blob/master/audit-your-software-extension.md v1 draft] devised by Achilleas Papageorgiou ([https://volunteers.joomla.org/teams/compliance-team Joomla! Compliance team]) for the cross-CMS privacy working group where representatives from the communities of WordPress, Drupal, Umbraco and of course Joomla! are collaborating in privacy.</translate>


'''Global Recommendation'''
<translate>'''Global Recommendation'''</translate>
This guide presents possible answers to each question and you can consider that, while there is no score to succeed, your extension should be aligned with the first answer (1.) of each question as much as possible.
<translate>This guide presents possible answers to each question and you can consider that, while there is no score to succeed, your extension should be aligned with the first answer (1.) of each question as much as possible.</translate>


'''Important notice'''
<translate>'''Important notice'''</translate>
You should not solely rely on the information below to design your full compliance plan regarding your software tools and business. Nevertheless, it is expected that the following information can provide you a useful and easy way to find your software’s weaknesses and let you improve it based on GDPR requirements and through the provided link to the how-to Joomla! documentation.  
<translate>You should not solely rely on the information below to design your full compliance plan regarding your software tools and business. Nevertheless, it is expected that the following information can provide you a useful and easy way to find your software’s weaknesses and let you improve it based on GDPR requirements and through the provided link to the how-to Joomla! documentation.</translate>
{{-}}
{{-}}




'''Choose the severity group of your extension in terms of privacy:'''
<translate>'''Choose the severity group of your extension in terms of privacy:'''</translate>


{| class="wikitable sortable" style="width:100%; vertical-align:top; border:1px solid Sienna; background-color:Cornsilk;"
{| class="wikitable sortable" style="width:100%; vertical-align:top; border:1px solid Sienna; background-color:Cornsilk;"
|- style="background-color:Wheat; font-weight:bold; text-align: left;"
|- style="background-color:Wheat; font-weight:bold; text-align: left;"
!width=20%|Groups
!width=20%|<translate>Groups</translate>
!width=60%|Personal data processing profile
!width=60%|<translate>Personal data processing profile</translate>
!width=20%|Related questions  
!width=20%|<translate>Related questions</translate>
|-
|-
| '''Group A'''
| '''<translate>Group A</translate>'''
| The extension isn't expected to process or store any personal data
| <translate>The extension isn't expected to process or store any personal data</translate>
| 7 and 8
| <translate>7 and 8</translate>
|-
|-
| '''Group B'''
| '''<translate>Group B</translate>'''
| The extension is expected to process or store data that can be used to indirectly associate the identity of a person
| <translate>The extension is expected to process or store data that can be used to indirectly associate the identity of a person</translate>
| 1 to 8
| <translate>1 to 8</translate>
|-
|-
| '''Group C'''
| '''<translate>Group C</translate>'''
| The extension is expected to process or store personal data that can be used to directly associate the identity of a person
| <translate>The extension is expected to process or store personal data that can be used to directly associate the identity of a person</translate>
| 1 to 8
| <translate>1 to 8</translate>
|-
|-
| '''Group D'''
| '''<translate>Group D</translate>'''
| The extension is expected to process or store personal data and also special categories of personal data that can include, but not limited to  
| <translate>The extension is expected to process or store personal data and also special categories of personal data that can include, but not limited to</translate>
*race and ethnic origin,  
<translate>*race and ethnic origin data,  
*religious,  
*religious data,  
*genetic data,  
*genetic data,  
*health data.
*health data.</translate>
| 1 to 8
| <translate>1 to 8</translate>
|-
|-
| '''Group E'''
| '''<translate>Group E</translate>'''
| The extension is expected to share personal data with at least one third party service
| <translate>The extension is expected to share personal data with at least one third party service</translate>
| 1 to 8
| <translate>1 to 8</translate>
|}
|}




== 1. Consent to the use of personal data functionalities==  
<translate>
== 1. Consent to the use of personal data functionalities==
</translate>


*'''Group affected: B, C, D, E'''
*'''<translate>Group affected: B, C, D, E</translate>'''
*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e1489-1-1 Articles 4] (Definition 11), [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2254-1-1 13] & [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 Recitals 32, 42]
<translate>*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e1489-1-1 Articles 4] (Definition 11), [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2254-1-1 13] & [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 Recitals 32, 42]</translate>


#'''Is there any functionality to collect and log consents from users that submit their personal data?'''
<translate>#'''Is there any functionality to collect and log consents from users that submit their personal data?'''</translate>
##A consent collection and logging system already exists.
<translate>##A consent collection and logging system already exists.</translate>
##Such a system partially exists (for example there is a consent checkbox but does not store logs)  
<translate>##Such a system partially exists (for example there is a consent checkbox but does not store logs)</translate>
##There is no consent collection and logging system<br />'''{{rarr}}Recommended Action:''' <br />''A functionality to inform users regarding the privacy policy (upfront the collection of any personal data) and log consents (if not legal basis exists) from users that their personal data are collected and/or processed. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily understand all the appropriate information (that Webmasters should provide) and freely provide their consents.''
<translate>##There is no consent collection and logging system<br />'''{{rarr}}Recommended Action:''' <br />''A functionality to inform users regarding the privacy policy (upfront the collection of any personal data) and log consents (if not legal basis exists) from users that their personal data are collected and/or processed. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily understand all the appropriate information (that Webmasters should provide) and freely provide their consents.''</translate>
#'''Is there a functionality to allow users to withdraw their consent?'''
<translate>#'''Is there a functionality to allow users to withdraw their consent?'''</translate>
##A functionality provides to users the ability to withdraw consent.
<translate>##A functionality provides to users the ability to withdraw consent.</translate>
##There is no functionality to withdraw consent. <br />'''{{rarr}}Recommended Action:''' <br />''A functionality that users can use to withdraw any already given consent should provided. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily find an easy way to withdraw.''
<translate>##There is no functionality to withdraw consent. <br />'''{{rarr}}Recommended Action:''' <br />''A functionality that users can use to withdraw any already given consent should provided. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily find an easy way to withdraw.''</translate>
#'''Is the consent functionality connected to the Joomla core Privacy Component?'''
<translate>#'''Is the consent functionality connected to the Joomla core Privacy Component?'''</translate>
##Yes, it is connected to the Joomla core Privacy Component.
<translate>##Yes, it is connected to the Joomla core Privacy Component.</translate>
##The consent functionality is based on a custom mechanism.
<translate>##The consent functionality is based on a custom mechanism.</translate>
##No, it is not. <br />'''{{rarr}}Recommended Action:''' <br />''Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. This will facilitate for site creators to setup a clear and proper consent functionality for Joomla websites. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.  
<translate>##No, it is not. <br />'''{{rarr}}Recommended Action:''' <br />''Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. This will facilitate for site creators to setup a clear and proper consent functionality for Joomla websites. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.</translate>
#'''Does your extension allow the generation of additional consent functionalities (checkboxes) for the up front consent of the users to the use of personal data in case of marketing, profiling, children data, sensitive data?'''
<translate>#'''Does your extension allow the generation of additional consent functionalities (checkboxes) for the up front consent of the users to the use of personal data in case of marketing, profiling, children data, sensitive data?'''</translate>
##Yes, there is such functionality that can be used to generate additional consent mechanisms.
<translate>##Yes, there is such functionality that can be used to generate additional consent mechanisms.</translate>
##Yes, there is such functionality but with limited options (i.e. you can only add one more).
<translate>##Yes, there is such functionality but with limited options (i.e. you can only add one more).</translate>
##No, there is no functionality to generate additional consent functionalities.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality to generate, additional to the 1.1 requirement, consents (if not legal basis exists) from users that need to provide additional consent, such as the processing of special personal data categories that require explicit consent, or to provide their consent for a different scope of processing.''
<translate>##No, there is no functionality to generate additional consent functionalities.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality to generate, additional to the 1.1 requirement, consents (if not legal basis exists) from users that need to provide additional consent, such as the processing of special personal data categories that require explicit consent, or to provide their consent for a different scope of processing.''</translate>


== 2. Consent for Cookies collecting personal data ==  
<translate>
== 2. Consent for Cookies collecting personal data ==
</translate>


*'''Group affected: B, C, D, E'''
<translate>*'''Group affected: B, C, D, E'''</translate>


#'''If your extension uses cookies that process personal data, is there a functionality for the up front consent by the user in case the software installs cookies that are collecting any personal data?'''
<translate>#'''If your extension uses cookies that process personal data, is there a functionality for the up front consent by the user in case the software installs cookies that are collecting any personal data?'''</translate>
##Yes there is such functionality.
<translate>##Yes there is such functionality.</translate>
##No, there is no functionality for cookies, but there is an informational notice in order for the webmaster to use such a functionality
<translate>##No, there is no functionality for cookies, but there is an informational notice in order for the webmaster to use such a functionality</translate>
##No, there is no such functionality.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to provide users with the ability to upfront the installation consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''
<translate>##No, there is no such functionality.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to provide users with the ability to upfront the installation consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''</translate>
#If a functionality to collect consents is provided, is there also a functionality for the user/s to withdraw their consent?
<translate>#If a functionality to collect consents is provided, is there also a functionality for the user/s to withdraw their consent?</translate>
##Yes, there is such functionality
<translate>##Yes, there is such functionality</translate>
##No, there is no functionality for that, but there is an informational notice for the webmaster to use such a functionality.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to allow users to withdraw their already given consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''
<translate>##No, there is no functionality for that, but there is an informational notice for the webmaster to use such a functionality.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to allow users to withdraw their already given consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''</translate>


<translate>
== 3. Right to Data Portability ==
== 3. Right to Data Portability ==
</translate>


*'''Group affected: B, C, D, E'''
<translate>*'''Group affected: B, C, D, E'''</translate>
*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2753-1-1 Article 20]  
<translate>*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2753-1-1 Article 20]</translate>


#'''Is there a functionality that gives users the ability to request and download their data?'''
<translate>#'''Is there a functionality that gives users the ability to request and download their data?'''</translate>
##Yes, there is such functionality.
<translate>##Yes, there is such functionality.</translate>
##Yes, but partially.
<translate>##Yes, but partially.</translate>
##No, there is no functionality for that.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to provide users with the ability to request and download their data. Empower your compliance efforts by connecting your extension’s functions to the Joomla’s core API. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''
<translate>##No, there is no functionality for that.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to provide users with the ability to request and download their data. Empower your compliance efforts by connecting your extension’s functions to the Joomla’s core API. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''</translate>
#Is the file that is downloaded in a machine readable format (for example XML, CSV)?
<translate>#Is the file that is downloaded in a machine readable format (for example XML, CSV)?</translate>
##Yes, it is.
<translate>##Yes, it is.</translate>
## No it isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to allow users request and download their data to a machine readable format (for example XML, CSV). Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''
<translate>## No it isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality should exist to allow users request and download their data to a machine readable format (for example XML, CSV). Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''</translate>


<translate>
== 4. Right of Access by the data subject ==
== 4. Right of Access by the data subject ==
*'''Group affected: B, C, D, E'''
</translate>
*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2599-1-1 Article 16]
<translate>*'''Group affected: B, C, D, E'''</translate>
<translate>*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2599-1-1 Article 16]</translate>


#'''In case the extension collects personal data, does the extension provides a dashboard to the users with settings to edit their personal data?'''
<translate>#'''In case the extension collects personal data, does the extension provides a dashboard to the users with settings to edit their personal data?'''</translate>
##Yes, it provides.
<translate>##Yes, it provides.</translate>
##Yes, there is but partially.
<translate>##Yes, there is but partially.</translate>
##No, there isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''A view should exist to provide users with the ability to preview and edit their data.''  
<translate>##No, there isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''A view should exist to provide users with the ability to preview and edit their data.''</translate>


<translate>
==5. Right to be Forgotten ==
==5. Right to be Forgotten ==
*'''Group affected: B, C, D, E'''
</translate>
* Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2606-1-1 Article 17], Recital [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 65]
<translate>*'''Group affected: B, C, D, E'''</translate>
<translate>* Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2606-1-1 Article 17], Recital [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 65]</translate>


#'''Is there a functionality that offers to users the request to remove/delete all of their data?'''
<translate>#'''Is there a functionality that offers to users the request to remove/delete all of their data?'''</translate>
##There is.
<translate>##There is.</translate>
##There is, but partially.
<translate>##There is, but partially.</translate>
##There isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality and an easy to use flow should be provided to users to submit deletion requests. At the same time a procedure for the Webmasters to manage those requests should exists at the administration side of their websites. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''
<translate>##There isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''A functionality and an easy to use flow should be provided to users to submit deletion requests. At the same time a procedure for the Webmasters to manage those requests should exists at the administration side of their websites. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''</translate>
#'''Does the extension include an uninstall operation to your extensions code to successfully delete all the previous collected users’ data once the Super User decides to uninstall it?'''
<translate>#'''Does the extension include an uninstall operation to your extensions code to successfully delete all the previous collected users’ data once the Super User decides to uninstall it?'''</translate>
##Yes, this operation is included.
<translate>##Yes, this operation is included.</translate>
##No, there isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''You should use the proposed steps [[S:MyLanguage/J3.2:Developing_an_MVC_Component/Adding_an_install-uninstall-update_script_file|here]] to successfully include the uninstall operation and also include any code and files needed based on the Joomla MVC to succeed the complete deletion. Don’t forget to include database tables with users’ data to the uninstall process.''
<translate>##No, there isn’t.<br />'''{{rarr}}Recommended Action:''' <br />''You should use the proposed steps [[S:MyLanguage/J3.2:Developing_an_MVC_Component/Adding_an_install-uninstall-update_script_file|here]] to successfully include the uninstall operation and also include any code and files needed based on the Joomla MVC to succeed the complete deletion. Don’t forget to include database tables with users’ data to the uninstall process.''</translate>


<translate>
==6. Privacy by Default==
==6. Privacy by Default==
*'''Group affected: B, C, D, E'''
</translate>
*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e3063-1-1 Article 25]
<translate>*'''Group affected: B, C, D, E'''</translate>
<translate>*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e3063-1-1 Article 25]</translate>


#'''Does the software have all the settings set to the most private possible due to its scope?'''
<translate>#'''Does the software have all the settings set to the most private possible due to its scope?'''</translate>
##Yes, the default settings are in the most private.
<translate>##Yes, the default settings are in the most private.</translate>
##No, the default settings are not in the most private.<br />'''{{rarr}}Recommended Action:''' <br />''All the settings regarding the personal data collection/processing/storage should be set to the most private possible due to its scope of processing.''
<translate>##No, the default settings are not in the most private.<br />'''{{rarr}}Recommended Action:''' <br />''All the settings regarding the personal data collection/processing/storage should be set to the most private possible due to its scope of processing.''</translate>
#'''Is the extension collecting personal data that is not needed/being used currently?'''
<translate>#'''Is the extension collecting personal data that is not needed/being used currently?'''</translate>
##Yes, the extension collects only the minimum needed to offer to Super Users and users the expected functionalities.
<translate>##Yes, the extension collects only the minimum needed to offer to Super Users and users the expected functionalities.</translate>
##The extension collects by default additional information that could potentially be used by Super Users.<br />'''{{rarr}}Recommended Action:''' <br />''The extension should, by default, collect only the strictly needed users data that are mandatory to be functional based on its description. Any additional features that result to data collection (for example the IP collection) should be by default set OFF. the extension should provide a dashboard to let administrators manage those settings based on their needs and Privacy policies.''
<translate>##The extension collects by default additional information that could potentially be used by Super Users.<br />'''{{rarr}}Recommended Action:''' <br />''The extension should, by default, collect only the strictly needed users data that are mandatory to be functional based on its description. Any additional features that result to data collection (for example the IP collection) should be by default set OFF. the extension should provide a dashboard to let administrators manage those settings based on their needs and Privacy policies.''</translate>


<translate>
==7. Security Measures==
==7. Security Measures==
*'''Group affected: A, B, C, D, E'''
</translate>
*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e3383-1-1 Article 32], [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 Recitals 6 and 78]
<translate>*'''Group affected: A, B, C, D, E'''</translate>
<translate>*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e3383-1-1 Article 32], [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 Recitals 6 and 78]</translate>


#'''Is there secure transmission for all the resources used by the functionality?'''
<translate>#'''Is there secure transmission for all the resources used by the functionality?'''</translate>
##Yes, all the requests are under HTTPS (TLS).
<translate>##Yes, all the requests are under HTTPS (TLS).</translate>
##Some of the resources transmit information insecurely.
<translate>##Some of the resources transmit information insecurely.</translate>
##All the resources transmit information insecurely. <br />'''{{rarr}}Recommended Action:''' <br />''All the used resources, local or called via a third party host, should transmit data only through encrypted connections.You could inspect the HTTP requests through your browser or even use a tool for that like [https://www.screamingfrog.co.uk/seo-spider/ Screaming Frog]. You should always use well configured certificates on your web servers to ensure secure transmission. In case your extension requests from or transmits data to a web server/s, you can run a test to ensure the security of the certificate used and configuration of this server. There are many tools and services to help you on that, for example you can use [https://www.ssllabs.com/ssltest/ SSL Server Test]. ''  
<translate>##All the resources transmit information insecurely. <br />'''{{rarr}}Recommended Action:''' <br />''All the used resources, local or called via a third party host, should transmit data only through encrypted connections.You could inspect the HTTP requests through your browser or even use a tool for that like [https://www.screamingfrog.co.uk/seo-spider/ Screaming Frog]. You should always use well configured certificates on your web servers to ensure secure transmission. In case your extension requests from or transmits data to a web server/s, you can run a test to ensure the security of the certificate used and configuration of this server. There are many tools and services to help you on that, for example you can use [https://www.ssllabs.com/ssltest/ SSL Server Test]. ''</translate>
#'''If your extension will be used to store special personal data categories (like those described in Group D), is the data stored encrypted?'''
<translate>#'''If your extension will be used to store special personal data categories (like those described in Group D), is the data stored encrypted?'''</translate>
##Yes, data can be stored encrypted.
<translate>##Yes, data can be stored encrypted.</translate>
##Only part of the data can be stored encrypted.
<translate>##Only part of the data can be stored encrypted.</translate>
##No, no data are encrypted by the extension.<br />'''{{rarr}}Recommended Action:''' <br />''To empower the compliance level of your extension you could use encryption functions to encrypt the data in the database. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. View on [https://github.com/joomla/joomla-cms/tree/staging/libraries/src/Crypt GitHub] to learn how you can make it happen.''  
<translate>##No, no data are encrypted by the extension.<br />'''{{rarr}}Recommended Action:''' <br />''To empower the compliance level of your extension you could use encryption functions to encrypt the data in the database. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. View on [https://github.com/joomla/joomla-cms/tree/staging/libraries/src/Crypt GitHub] to learn how you can make it happen.''</translate>
#'''If there is a need to apply anonymization techniques are they applied?'''
<translate>#'''If there is a need to apply anonymization techniques are they applied?'''</translate>
##Yes, data can be anonymized.
<translate>##Yes, data can be anonymized.</translate>
##Some of the data can be partially anonymized.
<translate>##Some of the data can be partially anonymized.</translate>
##No, there is no ability to anonymize data.<br />'''{{rarr}}Recommended Action:''' <br />''You can use anonymization functions for the collected data. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''  
<translate>##No, there is no ability to anonymize data.<br />'''{{rarr}}Recommended Action:''' <br />''You can use anonymization functions for the collected data. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. Read [[S:MyLanguage/J3.x:Integrate_Extensions_with_the_Privacy_Component|here]] how you can make it happen.''</translate>


<translate>
==8. (In case of) Third parties/Sub-processors==
==8. (In case of) Third parties/Sub-processors==
*'''Group affected: A, B, C, D, E'''
</translate>
*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 Recitals 58 and 78]
<translate>*'''Group affected: A, B, C, D, E'''</translate>
<translate>*Legal requirement on GDPR: [https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e40-1-1 Recitals 58 and 78]</translate>


#'''In case you use third parties to provide a service or a functionality, have you included it to your third parties or sub-processors list?'''
<translate>#'''In case you use third parties to provide a service or a functionality, have you included it to your third parties or sub-processors list?'''</translate>
##Yes, there is a list of all third parties.
<translate>##Yes, there is a list of all third parties.</translate>
##No, there is no list of third parties or the list is not full.<br />'''{{rarr}}Recommended Action:''' <br />''You should provide a list with all the third party services used by your extension in order to make easier for the Webmasters to also include them to their Processors list in their websites Privacy Policy.''
<translate>##No, there is no list of third parties or the list is not full.<br />'''{{rarr}}Recommended Action:''' <br />''You should provide a list with all the third party services used by your extension in order to make easier for the Webmasters to also include them to their Processors list in their websites Privacy Policy.''</translate>
#'''In case you use third parties, do you provide a notice including a link to the Data Protection Agreement/Addendum (DPA) of the third parties used by your extension for the Webmasters that will use it to find it easy to sign them? Even if the third party does not collect any personal data, an agreement for that should exist.'''
<translate>#'''In case you use third parties, do you provide a notice including a link to the Data Protection Agreement/Addendum (DPA) of the third parties used by your extension for the Webmasters that will use it to find it easy to sign them? Even if the third party does not collect any personal data, an agreement for that should exist.'''</translate>
##Yes, with all the third parties.
<translate>##Yes, with all the third parties.</translate>
##Yes, with some of the third parties.
<translate>##Yes, with some of the third parties.</translate>
##No, there is no DPA signed.<br />'''{{rarr}}Recommended Action:''' <br />''You should provide a notice including a link to the Data Protection Agreements/Addendums of the third parties used by your extension in order to for the Webmasters that will use it to find it easy to sign them. This will help them review, audit and provide information to their users regarding the compliance of those third parties. ''
<translate>##No, there is no DPA signed.<br />'''{{rarr}}Recommended Action:''' <br />''You should provide a notice including a link to the Data Protection Agreements/Addendums of the third parties used by your extension in order to for the Webmasters that will use it to find it easy to sign them. This will help them review, audit and provide information to their users regarding the compliance of those third parties. ''</translate>


<translate>
==Further reading==
==Further reading==
</translate>


*Secure coding guidelines, Joomla Documentation https://docs.joomla.org/Secure_coding_guidelines  
<translate>*[[S:MyLanguage/Secure_coding_guidelines|Secure coding guidelines], Joomla Documentation</translate>  
*Compliance audit template to map the GDPR compliance level of your software extension, Cross-CMS Coalition Online at: https://git.io/fjww3   
*<translate>Compliance audit template to map the GDPR compliance level of your software extension, Cross-CMS Coalition Online at:</translate> https://git.io/fjww3   
*Papageorgiou A., Strigkos M., Politou E., Alepis E., Solanas S., Patsakis C., Security and privacy analysis of mobile health applications: The alarming state of practice, online at: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8272037. This work was supported by the European Commission under the Horizon 2020 Programme (H2020), as part of the OPERANDO project (Grant Agreement no. 653704) and the CRYPTACUS COST action (COST Action IC1403).
<translate>*Papageorgiou A., Strigkos M., Politou E., Alepis E., Solanas S., Patsakis C., Security and privacy analysis of mobile health applications: The alarming state of practice: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8272037. This work was supported by the European Commission under the Horizon 2020 Programme (H2020), as part of the OPERANDO project (Grant Agreement no. 653704) and the CRYPTACUS COST action (COST Action IC1403).</translate>
*Open Source Privacy Standards, by Heather Burns (webdevlaw), online at: https://git.io/fjwwG  
*<translate>Open Source Privacy Standards, by Heather Burns (webdevlaw):</translate> https://git.io/fjwwG  
*Nutricati A. and Papageorgiou A., GDPR Overview: Decrypting the regulation in series, online at: https://magazine.joomla.org/issues/issue-feb-2018/item/3306-gdpr-overview-decrypting-the-regulation-in-series  
*<translate>Nutricati A. and Papageorgiou A., GDPR Overview: Decrypting the regulation in series:</translate> https://magazine.joomla.org/issues/issue-feb-2018/item/3306-gdpr-overview-decrypting-the-regulation-in-series  
*Papageorgiou A., GDPR Awareness: From privacy risks to the need for countermeasures, online at: https://magazine.joomla.org/issues/issue-mar-2018/item/3314-gdpr-awareness-from-privacy-risks-to-the-need-for-countermeasures  
*<translate>Papageorgiou A., GDPR Awareness: From privacy risks to the need for countermeasures:</translate> https://magazine.joomla.org/issues/issue-mar-2018/item/3314-gdpr-awareness-from-privacy-risks-to-the-need-for-countermeasures  
*Koho R., Privacy by default and GDPR, examples and best practises, online at: https://magazine.joomla.org/issues/issue-apr-2018/item/3318-privacy-by-default-and-gdpr-examples-and-best-practises  
*<translate>Koho R., Privacy by default and GDPR, examples and best practises:</translate> https://magazine.joomla.org/issues/issue-apr-2018/item/3318-privacy-by-default-and-gdpr-examples-and-best-practises  
*GDPR – A Practical Guide for Developers, BOZHO'S TECH BLOG, online at: https://techblog.bozho.net/gdpr-practical-guide-developers/  
*<translate>GDPR – A Practical Guide for Developers, BOZHO'S TECH BLOG:</translate> https://techblog.bozho.net/gdpr-practical-guide-developers/  




'''Contributors'''
'''<translate>Contributors</translate>'''
*Author: [https://volunteers.joomla.org/joomlers/2399-achilleas-papageorgiou Achilleas Papageorgiou], Team Leader of Compliance Team
*<translate>Author: [https://volunteers.joomla.org/joomlers/2399-achilleas-papageorgiou Achilleas Papageorgiou], Team Leader of Compliance Team</translate>
*Contributors: [https://volunteers.joomla.org/joomlers/312-luca-marzo Luca Marzo], [https://volunteers.joomla.org/joomlers/60-sander-potjer Sander Potjer], [https://volunteers.joomla.org/joomlers/155-roland-dalmulder Roland Dalmulder]
*<translate>Contributors</translate>: [https://volunteers.joomla.org/joomlers/312-luca-marzo Luca Marzo], [https://volunteers.joomla.org/joomlers/60-sander-potjer Sander Potjer], [https://volunteers.joomla.org/joomlers/155-roland-dalmulder Roland Dalmulder]


<noinclude>
<noinclude>

Revision as of 10:00, 26 June 2019

Find your extension’s Achilles heel (weakness)
in terms of personal data protection

This is a compliance audit template to map the GDPR compliance level of your Joomla! extensions. This workflow is based on the v1 draft devised by Achilleas Papageorgiou (Joomla! Compliance team) for the cross-CMS privacy working group where representatives from the communities of WordPress, Drupal, Umbraco and of course Joomla! are collaborating in privacy.

Global Recommendation This guide presents possible answers to each question and you can consider that, while there is no score to succeed, your extension should be aligned with the first answer (1.) of each question as much as possible.

Important notice You should not solely rely on the information below to design your full compliance plan regarding your software tools and business. Nevertheless, it is expected that the following information can provide you a useful and easy way to find your software’s weaknesses and let you improve it based on GDPR requirements and through the provided link to the how-to Joomla! documentation.


Choose the severity group of your extension in terms of privacy:

Groups Personal data processing profile Related questions
Group A The extension isn't expected to process or store any personal data 7 and 8
Group B The extension is expected to process or store data that can be used to indirectly associate the identity of a person 1 to 8
Group C The extension is expected to process or store personal data that can be used to directly associate the identity of a person 1 to 8
Group D The extension is expected to process or store personal data and also special categories of personal data that can include, but not limited to
  • race and ethnic origin data,
  • religious data,
  • genetic data,
  • health data.
1 to 8
Group E The extension is expected to share personal data with at least one third party service 1 to 8


1. Consent to the use of personal data functionalities

  1. Is there any functionality to collect and log consents from users that submit their personal data?
    1. A consent collection and logging system already exists.
    2. Such a system partially exists (for example there is a consent checkbox but does not store logs)
    3. There is no consent collection and logging system
        Recommended Action:
      A functionality to inform users regarding the privacy policy (upfront the collection of any personal data) and log consents (if not legal basis exists) from users that their personal data are collected and/or processed. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily understand all the appropriate information (that Webmasters should provide) and freely provide their consents.
  2. Is there a functionality to allow users to withdraw their consent?
    1. A functionality provides to users the ability to withdraw consent.
    2. There is no functionality to withdraw consent.
        Recommended Action:
      A functionality that users can use to withdraw any already given consent should provided. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily find an easy way to withdraw.
  3. Is the consent functionality connected to the Joomla core Privacy Component?
    1. Yes, it is connected to the Joomla core Privacy Component.
    2. The consent functionality is based on a custom mechanism.
    3. No, it is not.
        Recommended Action:
      Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. This will facilitate for site creators to setup a clear and proper consent functionality for Joomla websites. Read here how you can make it happen.
  4. Does your extension allow the generation of additional consent functionalities (checkboxes) for the up front consent of the users to the use of personal data in case of marketing, profiling, children data, sensitive data?
    1. Yes, there is such functionality that can be used to generate additional consent mechanisms.
    2. Yes, there is such functionality but with limited options (i.e. you can only add one more).
    3. No, there is no functionality to generate additional consent functionalities.
        Recommended Action:
      A functionality to generate, additional to the 1.1 requirement, consents (if not legal basis exists) from users that need to provide additional consent, such as the processing of special personal data categories that require explicit consent, or to provide their consent for a different scope of processing.

2. Consent for Cookies collecting personal data

  • Group affected: B, C, D, E
  1. If your extension uses cookies that process personal data, is there a functionality for the up front consent by the user in case the software installs cookies that are collecting any personal data?
    1. Yes there is such functionality.
    2. No, there is no functionality for cookies, but there is an informational notice in order for the webmaster to use such a functionality
    3. No, there is no such functionality.
        Recommended Action:
      A functionality should exist to provide users with the ability to upfront the installation consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read here how you can make it happen.
  2. If a functionality to collect consents is provided, is there also a functionality for the user/s to withdraw their consent?
    1. Yes, there is such functionality
    2. No, there is no functionality for that, but there is an informational notice for the webmaster to use such a functionality.
        Recommended Action:
      A functionality should exist to allow users to withdraw their already given consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read here how you can make it happen.

3. Right to Data Portability

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 20
  1. Is there a functionality that gives users the ability to request and download their data?
    1. Yes, there is such functionality.
    2. Yes, but partially.
    3. No, there is no functionality for that.
        Recommended Action:
      A functionality should exist to provide users with the ability to request and download their data. Empower your compliance efforts by connecting your extension’s functions to the Joomla’s core API. Read here how you can make it happen.
  2. Is the file that is downloaded in a machine readable format (for example XML, CSV)?
    1. Yes, it is.
    2. No it isn’t.
        Recommended Action:
      A functionality should exist to allow users request and download their data to a machine readable format (for example XML, CSV). Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.

4. Right of Access by the data subject

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 16
  1. In case the extension collects personal data, does the extension provides a dashboard to the users with settings to edit their personal data?
    1. Yes, it provides.
    2. Yes, there is but partially.
    3. No, there isn’t.
        Recommended Action:
      A view should exist to provide users with the ability to preview and edit their data.

5. Right to be Forgotten

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 17, Recital 65
  1. Is there a functionality that offers to users the request to remove/delete all of their data?
    1. There is.
    2. There is, but partially.
    3. There isn’t.
        Recommended Action:
      A functionality and an easy to use flow should be provided to users to submit deletion requests. At the same time a procedure for the Webmasters to manage those requests should exists at the administration side of their websites. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.
  2. Does the extension include an uninstall operation to your extensions code to successfully delete all the previous collected users’ data once the Super User decides to uninstall it?
    1. Yes, this operation is included.
    2. No, there isn’t.
        Recommended Action:
      You should use the proposed steps here to successfully include the uninstall operation and also include any code and files needed based on the Joomla MVC to succeed the complete deletion. Don’t forget to include database tables with users’ data to the uninstall process.

6. Privacy by Default

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 25
  1. Does the software have all the settings set to the most private possible due to its scope?
    1. Yes, the default settings are in the most private.
    2. No, the default settings are not in the most private.
        Recommended Action:
      All the settings regarding the personal data collection/processing/storage should be set to the most private possible due to its scope of processing.
  2. Is the extension collecting personal data that is not needed/being used currently?
    1. Yes, the extension collects only the minimum needed to offer to Super Users and users the expected functionalities.
    2. The extension collects by default additional information that could potentially be used by Super Users.
        Recommended Action:
      The extension should, by default, collect only the strictly needed users data that are mandatory to be functional based on its description. Any additional features that result to data collection (for example the IP collection) should be by default set OFF. the extension should provide a dashboard to let administrators manage those settings based on their needs and Privacy policies.

7. Security Measures

  1. Is there secure transmission for all the resources used by the functionality?
    1. Yes, all the requests are under HTTPS (TLS).
    2. Some of the resources transmit information insecurely.
    3. All the resources transmit information insecurely.
        Recommended Action:
      All the used resources, local or called via a third party host, should transmit data only through encrypted connections.You could inspect the HTTP requests through your browser or even use a tool for that like Screaming Frog. You should always use well configured certificates on your web servers to ensure secure transmission. In case your extension requests from or transmits data to a web server/s, you can run a test to ensure the security of the certificate used and configuration of this server. There are many tools and services to help you on that, for example you can use SSL Server Test.
  2. If your extension will be used to store special personal data categories (like those described in Group D), is the data stored encrypted?
    1. Yes, data can be stored encrypted.
    2. Only part of the data can be stored encrypted.
    3. No, no data are encrypted by the extension.
        Recommended Action:
      To empower the compliance level of your extension you could use encryption functions to encrypt the data in the database. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. View on GitHub to learn how you can make it happen.
  3. If there is a need to apply anonymization techniques are they applied?
    1. Yes, data can be anonymized.
    2. Some of the data can be partially anonymized.
    3. No, there is no ability to anonymize data.
        Recommended Action:
      You can use anonymization functions for the collected data. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. Read here how you can make it happen.

8. (In case of) Third parties/Sub-processors

  1. In case you use third parties to provide a service or a functionality, have you included it to your third parties or sub-processors list?
    1. Yes, there is a list of all third parties.
    2. No, there is no list of third parties or the list is not full.
        Recommended Action:
      You should provide a list with all the third party services used by your extension in order to make easier for the Webmasters to also include them to their Processors list in their websites Privacy Policy.
  2. In case you use third parties, do you provide a notice including a link to the Data Protection Agreement/Addendum (DPA) of the third parties used by your extension for the Webmasters that will use it to find it easy to sign them? Even if the third party does not collect any personal data, an agreement for that should exist.
    1. Yes, with all the third parties.
    2. Yes, with some of the third parties.
    3. No, there is no DPA signed.
        Recommended Action:
      You should provide a notice including a link to the Data Protection Agreements/Addendums of the third parties used by your extension in order to for the Webmasters that will use it to find it easy to sign them. This will help them review, audit and provide information to their users regarding the compliance of those third parties.

Further reading


Contributors