Skip to content

richdocuments is not compliant #535

@sebelk

Description

@sebelk

Steps to reproduce

  1. Upgrade to NC 16
  2. Upgrade to richdocuments (aka Collabora Online)
  3. Check code

Expected behaviour

App is compliant

Actual behaviour

Analysing /usr/share/nextcloud/apps/richdocuments/appinfo/app.php
 1 errors
    line   54: OC_Helper - Static method of private class must not be called
Analysing /usr/share/nextcloud/apps/richdocuments/lib/Controller/DocumentController.php
 1 errors
    line  396: OC_Helper - Static method of private class must not be called
Analysing /usr/share/nextcloud/apps/richdocuments/lib/Controller/WopiController.php
 3 errors
    line  151: OC_User - Static method of private class must not be called
    line  220: OC_User - Static method of private class must not be called
    line  317: != - is discouraged
Analysing /usr/share/nextcloud/apps/richdocuments/lib/Preview/Office.php
 1 errors
    line   99: OC_Image - private class must not be instantiated
Analysing /usr/share/nextcloud/apps/richdocuments/lib/TokenManager.php
 1 errors
    line  167: OC_Util - Static method of private class must not be called
Analysing /usr/share/nextcloud/apps/richdocuments/templates/admin.php
 4 errors
    line   51: != - is discouraged
    line   53: == - is discouraged
    line   64: != - is discouraged
    line   66: == - is discouraged
App is not compliant

Server configuration

Operating system: Centos 7.6.1810

Web server: Apache 2.4.6

Database: MariaDB 5.5.60

PHP version: 7.1

Nextcloud version: 16.0.1

Updated from an older Nextcloud/ownCloud or fresh install: 15

Where did you install Nextcloud from: Distro repos

Signing status:

Signing status
Details ``` occ -vvv integrity:check-app richdocuments

echo $?

0

Technical information

The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results

  • Application to check
    • EXCEPTION
      • Exception
      • App not found
  • core
    • INVALID_HASH
      • .user.ini

Raw output

Array
(
[Application to check] => Array
(
[EXCEPTION] => Array
(
[class] => Exception
[message] => App not found
)

    )

[core] => Array
    (
        [INVALID_HASH] => Array
            (
                [.user.ini] => Array
                    (
                        [expected] => 4843b3217e91f8536cb9b52700efb20300290292cf6286f92794d4cec99df286afeb7dd6c91b1be20bc55eda541eef230a5c5e7dcd46c189edd0ed1e80c6d3f5
                        [current] => 3df9ebf60726c47d35e4218c0ccf47ae1e93c70833d2be124fc0ff6b61ba37e99a6e9bb78f0deeae720022966945f129c1abfe46cf288e7a2175310c69aa48ba
                    )

            )

    )

)

</details>

**List of activated apps:**
<details>
<summary>App list</summary>

Enabled:

  • accessibility: 1.2.0
  • activity: 2.9.1
  • audioplayer: 2.7.2
  • cloud_federation_api: 0.2.0
  • comments: 1.6.0
  • dav: 1.9.2
  • deck: 0.6.2
  • drawio: 0.9.3
  • external: 3.3.0
  • federatedfilesharing: 1.6.0
  • federation: 1.6.0
  • files: 1.11.0
  • files_accesscontrol: 1.6.0
  • files_markdown: 2.0.6
  • files_pdfviewer: 1.5.0
  • files_rightclick: 0.13.0
  • files_sharing: 1.8.0
  • files_texteditor: 2.8.0
  • files_trashbin: 1.6.0
  • files_versions: 1.9.0
  • files_videoplayer: 1.5.0
  • firstrunwizard: 2.5.0
  • gallery: 18.3.0
  • groupfolders: 4.0.3
  • logreader: 2.1.0
  • lookup_server_connector: 1.4.0
  • nextcloud_announcements: 1.5.0
  • notes: 3.0.0
  • notifications: 2.4.1
  • oauth2: 1.4.2
  • password_policy: 1.6.0
  • phonetrack: 0.5.1
  • polls: 0.10.2
  • privacy: 1.0.0
  • provisioning_api: 1.6.0
  • recommendations: 0.4.0
  • richdocuments: 3.3.10
  • serverinfo: 1.6.0
  • sharebymail: 1.6.0
  • spreed: 6.0.2
  • support: 1.0.0
  • survey_client: 1.4.0
  • systemtags: 1.6.0
  • theming: 1.7.0
  • twofactor_backupcodes: 1.5.0
  • updatenotification: 1.6.0
  • user_ldap: 1.6.0
  • user_usage_report: 1.1.1
  • viewer: 1.0.0
  • workflowengine: 1.6.0
    Disabled:
  • admin_audit
  • announcementcenter
  • encryption
  • files_external
  • unsplash
</details>

**Nextcloud configuration:**
<details>
<summary>Config report</summary>

{
"system": {
"passwordsalt": "REMOVED SENSITIVE VALUE",
"secret": "REMOVED SENSITIVE VALUE",
"trusted_domains": [
"localhost",
"muteriver.example.com",
"192.168.50.8",
"infoestructura.local",
"cloud.example.com",
"cloud.example.com:44300",
"office.example.com"
],
"htaccess.RewriteBase": "/",
"datadirectory": "REMOVED SENSITIVE VALUE",
"overwrite.cli.url": "http://localhost",
"dbtype": "mysql",
"version": "16.0.1.1",
"dbname": "REMOVED SENSITIVE VALUE",
"dbhost": "REMOVED SENSITIVE VALUE",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "REMOVED SENSITIVE VALUE",
"dbpassword": "REMOVED SENSITIVE VALUE",
"installed": true,
"instanceid": "REMOVED SENSITIVE VALUE",
"ldapIgnoreNamingRules": false,
"ldapProviderFactory": "\OCA\User_LDAP\LDAPProviderFactory",
"maintenance": false,
"memcache.local": "\OC\Memcache\APCu",
"loglevel": 2,
"mail_from_address": "REMOVED SENSITIVE VALUE",
"mail_smtpmode": "smtp",
"mail_smtpauthtype": "LOGIN",
"mail_domain": "REMOVED SENSITIVE VALUE",
"logfile": "/var/lib/nethserver/nextcloud/nextcloud.log",
"mail_smtpsecure": "",
"mail_smtphost": "REMOVED SENSITIVE VALUE",
"mail_smtpport": "25",
"theme": "",
"app_install_overwrite": [
"spreed",
"unsplash",
"announcementcenter",
"groupfolders",
"external",
"files_accesscontrol"
],
"mysql.utf8mb4": true
}
}

</details>

**Are you using external storage, if yes which one:** No

**Are you using encryption:** no

**Are you using an external user-backend, if yes which one:** ActiveDirectory

#### LDAP configuration
<details>
<summary>LDAP config</summary>

+-------------------------------+----------------------------------------------------+
| Configuration | s05 |
+-------------------------------+----------------------------------------------------+
| hasMemberOfFilterSupport | 1 |
| homeFolderNamingRule | |
| lastJpegPhotoLookup | 0 |
| ldapAgentName | CN=Administrator,CN=Users,DC=example,DC=com |
| ldapAgentPassword | *** |
| ldapAttributesForGroupSearch | |
| ldapAttributesForUserSearch | |
| ldapBackupHost | |
| ldapBackupPort | |
| ldapBase | dc=example,dc=com |
| ldapBaseGroups | dc=example,dc=com |
| ldapBaseUsers | dc=example,dc=com |
| ldapCacheTTL | 600 |
| ldapConfigurationActive | 1 |
| ldapDefaultPPolicyDN | |
| ldapDynamicGroupMemberURL | |
| ldapEmailAttribute | mail |
| ldapExperiencedAdmin | 0 |
| ldapExpertUUIDGroupAttr | |
| ldapExpertUUIDUserAttr | |
| ldapExpertUsernameAttr | |
| ldapExtStorageHomeAttribute | |
| ldapGidNumber | gidNumber |
| ldapGroupDisplayName | cn |
| ldapGroupFilter | (|(cn=soporte)) |
| ldapGroupFilterGroups | |
| ldapGroupFilterMode | 0 |
| ldapGroupFilterObjectclass | |
| ldapGroupMemberAssocAttr | uniqueMember |
| ldapHost | ldaps://192.168.50.40 |
| ldapIgnoreNamingRules | |
| ldapLoginFilter | (&(&(|(objectclass=person)))(samaccountname=%uid)) |
| ldapLoginFilterAttributes | |
| ldapLoginFilterEmail | 0 |
| ldapLoginFilterMode | 0 |
| ldapLoginFilterUsername | 1 |
| ldapNestedGroups | 0 |
| ldapOverrideMainServer | |
| ldapPagingSize | 500 |
| ldapPort | 636 |
| ldapQuotaAttribute | |
| ldapQuotaDefault | |
| ldapTLS | |
| ldapUserAvatarRule | default |
| ldapUserDisplayName | displayname |
| ldapUserDisplayName2 | |
| ldapUserFilter | (&(|(objectclass=person))) |
| ldapUserFilterGroups | |
| ldapUserFilterMode | 1 |
| ldapUserFilterObjectclass | person |
| ldapUuidGroupAttribute | auto |
| ldapUuidUserAttribute | auto |
| turnOffCertCheck | 0 |
| turnOnPasswordChange | 1 |
| useMemberOfToDetectMembership | 1 |
+-------------------------------+----------------------------------------------------+

Client configuration

Browser: Firefox

Operating system: Fedora 30

Logs

Web server error log

Web server error log
[Tue Jun 25 12:47:36.229190 2019] [proxy_http:error] [pid 11137] (20014)Internal error: [client 192.168.50.54:51422] AH01102: error reading status line from remote server 127.0.0.1:20000
[Tue Jun 25 12:47:36.229263 2019] [proxy:error] [pid 11137] [client 192.168.50.54:51422] AH00898: Error reading from remote server returned by /Microsoft-Server-ActiveSync
[Tue Jun 25 14:00:07.505338 2019] [proxy_http:error] [pid 27955] (20014)Internal error: [client 192.168.50.54:51895] AH01102: error reading status line from remote server 127.0.0.1:20000
[Tue Jun 25 14:00:07.505420 2019] [proxy:error] [pid 27955] [client 192.168.50.54:51895] AH00898: Error reading from remote server returned by /Microsoft-Server-ActiveSync
[Tue Jun 25 15:15:03.017731 2019] [proxy_http:error] [pid 15830] (20014)Internal error: [client 192.168.50.54:52408] AH01102: error reading status line from remote server 127.0.0.1:20000
[Tue Jun 25 15:15:03.017807 2019] [proxy:error] [pid 15830] [client 192.168.50.54:52408] AH00898: Error reading from remote server returned by /Microsoft-Server-ActiveSync
[Tue Jun 25 16:15:03.371542 2019] [proxy_http:error] [pid 15830] (20014)Internal error: [client 192.168.50.54:52408] AH01102: error reading status line from remote server 127.0.0.1:20000
[Tue Jun 25 16:23:53.938275 2019] [proxy_http:error] [pid 22098] (20014)Internal error: [client 190.2.1.77:50302] AH01102: error reading status line from remote server 127.0.0.1:20000
[Tue Jun 25 17:15:03.601737 2019] [proxy_http:error] [pid 10713] (20014)Internal error: [client 192.168.50.54:53815] AH01102: error reading status line from remote server 127.0.0.1:20000
[Tue Jun 25 17:15:03.601815 2019] [proxy:error] [pid 10713] [client 192.168.50.54:53815] AH00898: Error reading from remote server returned by /Microsoft-Server-ActiveSync

Nextcloud log (data/nextcloud.log)

Nextcloud log
{"reqId":"XRONFwjMx9csZUAEREGVdQAAABA","level":4,"time":"2019-06-26T15:19:52+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XRONF3PyvnqCU6-i9qv2IwAAABQ","level":4,"time":"2019-06-26T15:19:53+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XRONGOb6MGBRl@CD26qv1wAAAAE","level":4,"time":"2019-06-26T15:19:53+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XRONGExcI4n7wVYV9MDPaAAAAAA","level":4,"time":"2019-06-26T15:19:54+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XRONGKPX55rmAWVK641vYwAAABI","level":4,"time":"2019-06-26T15:19:54+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XRONGgjMx9csZUAEREGVdgAAABA","level":4,"time":"2019-06-26T15:19:55+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XRONGfuAhAqvDMeBoYX1ZAAAAA4","level":4,"time":"2019-06-26T15:19:56+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XROO7TZHwWXz6uwmio1okwAAABA","level":4,"time":"2019-06-26T15:27:41+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XROO8CfeyT88gZOVPADn8wAAAAA","level":4,"time":"2019-06-26T15:27:44+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}
{"reqId":"XROO88uNGSuuscDCtyZD3QAAAAo","level":4,"time":"2019-06-26T15:27:47+00:00","remoteAddr":"192.168.50.43","user":"4EB94DDB-B4E6-40A5-A12B-D6D8224B0A3B","app":"files_texteditor","method":"PUT","url":"\/apps\/files_texteditor\/ajax\/savefile","message":"File: \/sad.txt modified since opening.","userAgent":"Mozilla\/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko\/20100101 Firefox\/66.0","version":"16.0.1.1"}

Browser log

Browser log


Content Security Policy: La configuración de la página bloqueó la carga de un recurso en eval ("script-src").
El recurso de “https://cloud.example.com/apps/files/” se bloqueó debido a la falta de coincidencia del tipo MIME (“text/html”) (X-Content-Type-Options: nosniff). files
could not load recommendation preview 
error { target: img, isTrusted: true, srcElement: img, eventPhase: 0, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, timeStamp: 3902, … }
main.js:14:12601
could not load recommendation preview 
error { target: img, isTrusted: true, srcElement: img, eventPhase: 0, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, timeStamp: 4176, … }
main.js:14:12601
could not load recommendation preview 
error { target: img, isTrusted: true, srcElement: img, eventPhase: 0, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, timeStamp: 4177, … }
main.js:14:12601
could not load recommendation preview 
error { target: img, isTrusted: true, srcElement: img, eventPhase: 0, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, timeStamp: 4344, … }
main.js:14:12601
El recurso de “https://cloud.example.com/apps/files/” se bloqueó debido a la falta de coincidencia del tipo MIME (“text/html”) (X-Content-Type-Options: nosniff). files





Any ideas?

Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions