AgID / wai-infrastructure

Infrastructure code for Web Analytics Italia
https://webanalytics.italia.it
BSD 3-Clause "New" or "Revised" License
5 stars 1 forks source link

Inibire l'accesso alla funzionalità di login di matomo per i client esterni #90

Closed pdavide closed 4 years ago

pdavide commented 4 years ago

Tutti i client esterni che provano ad accedere direttamente agli url:

dovrebbero essere reindirizzati alla home di WAI.

Questa regola non va applicata ai client che si collegano usando la vpn.

pdavide commented 4 years ago

Verificare se risolvibile con https://matomo.org/faq/how-to/faq_25543/. Pressoché impossibile da risolvere con regex in nginx perché la schermata di login è servita anche da module=CoreHome.

pdavide commented 4 years ago

@Valair ho provato a buttare giù un po' di codice in un plugin per ottenere il risultato che ci serve. Daresti un'occhiata facendo anche qualche prova?

https://github.com/pdavide/wai-matomo-plugin-LoginFilterIp

Valair commented 4 years ago

@pdavide ho fatto un giro provando a loggare e resettare la password e mi sembra funzionare; ho fatto un giro completo su WAI e non ci sono problemi. Ovviamente al momento c'è il bug della sessione non chiusa dopo il logme da portale (corretto qui https://github.com/AgID/wai-matomo-theme/commit/bdcd85cdb3da380c3e352c364aab0a0e1f43a834 ).

Un'unica nota, riguarda il fatto che hai usato il type hinting di PHP 7 anche se matomo dichiara ancora la v5.5 come minima; lato portale non cambia nulla ovviamente, metterei solo un avviso se qualcuno volesse usarlo.

pdavide commented 4 years ago

Ok grazie per il feedback. Aggiungo una nota sulla versione di PHP.

Ho visto sul tema che usi SystemSettings, dato che non ho approfondito la cosa ti chiederei se ha senso usarlo anche per il micro-plugin LoginFilterIp.

Valair commented 4 years ago

Visto l'utilizzo del plugin, potrebbe anche non servire l'uso di SystemSettings o uno degli altri settings. La differenze è che con \Piwik\Config sei legato al solo file config.ini.php, ovvero la configurazione è possibile solo modificando l'INI. I settings, invece, possono essere gestiti anche da UI (se lo desideri configurando i permessi di modifica a ruoli diversi dal super-admin, mettendo un default, indicando un tipo per la validazione con relativo messaggio di errore, etc.); nella pratica, definendo un campo dentro systemsettings, te lo ritrovi automaticamente in "System -> General Settings", un campo dentro usersettings in "Personal -> Settings", etc. Per il tema, nonostante sia un SystemSetting, non vedi nulla nell'interfaccia perchè configurandolo nel config.ini.php, matomo ne disabilita automaticamente la modifica via UI; per fare una prova, elimina la sezione dal config.ini.php relativa al tema e lo ritrovi configurabile nella UI come URL.

pdavide commented 4 years ago

Closed with https://github.com/AgID/wai-matomo-plugin-LoginFilterIp