Page 1 sur 1

[2023.1] Problème notification via bash

Publié : 16 mai 2023, 15:27
par jackyhi
Depuis mise à jour version 2023.1 Domoticz ne transmets plus les notifications HTTP personnalisées vers une IP différentes même située dans le réseau local. Alors que ça fonctionnait avant la mise à jour.
sur le RPI3 : adresse IP1 :192.168.xx.yy
Message retourné : Error: Script: Insecure script command!

Sur un autre RPI4 qui héberge le site web API REST ça fonctionne. adresse IP2: 192.168.xx.xx

La notification HTTP envoie avec un script bash un message vers le serveur web API REST qui envoie le message en sms vers un portable via un modem GSM.

Paramètrage de la notification sur les 2 RPI:

Code : Tout sélectionner

script:///home/pi/domoticz/scripts/sendsms.sh  "#TO" "#MESSAGE"
mon script sendsms.sh:

Code : Tout sélectionner

#!/bin/bash
#

rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  encoded=""
  local pos c o
  
  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9] ) o="${c}" ;;
        * )               printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"    # You can either set a return variable (FASTER) 
  REPLY="${encoded}"   #+or echo the result (EASIER)... or both... :p
}

rawurlencode "$2"
error=$(curl -X POST http://192.168.xx.xx/send.php? -d phone=%2B$1 -d text="$2" )

echo $error #affichage du retour d'info
Est ce vous avez remarqué ce problème de sécurité? Comment le résoudre??

Re: [2023.1] Problème notification via bash

Publié : 16 mai 2023, 18:54
par Keros
J'ai quasiment la même commande et mes messages sont envoyés. Je suis avec DomoticZ 2023.1 en béta 15182.

Re: [2023.1] Problème notification via bash

Publié : 16 mai 2023, 20:47
par jackyhi
Merci de ta réponse Keros,

mais le comportement de mon RPI3 est assez bizarre, précédement j'avais upgrader Raspbian vers version 11 et domoticz version 2023.1, le système commençait à avoir des défaillances (par exemples les nouveaux devices n'apparaissaient plus dans l'onglet switchs etc.. ) mais les notifications de domoticz étaient correctement envoyées.

J'ai fait une image de sauvegarde de la carte SD au cas où... et je suis reparti d'une installation vierge y compris devices capteurs variables etc..

Et voici ce qui arrive avec cette nouvelle installation:
les notifications de Domoticz ne sont plus envoyées Message retourné : Error: Script: Insecure script command!

par contre j'ai des scripts en lua qui envoient des sms avec la commande curl sur la même API RST
http://192.168.xx.xx/send.php? -d phone=%2B$1 -d text="$2" et curieusement ces sms sont correctement envoyés!!

J'avoue que je ne comprend pas où se situe le problème.

Je pense que l'execution du script sendsms.sh ou la requête en php pose problème sur la nouvelle installation mais pas sur l'ancienne.

J'ai une autre installation sur RPI4 avec raspbian v11, domoticz 2023.1 sous docker, gammu-smsd API REST modem GSM , Zwave Js UI sous docker et tout fonctionne sur ce RPI4

J'ai relancé le RPI3 avec son ancienne carte SD et les notifications de Domoticz fonctionnent!!! Je n'y comprend plus rien.

Re: [2023.1] Problème notification via bash

Publié : 16 mai 2023, 20:58
par Keros
Dans mon cas, j'appelle une requête pour RaspiSMS qui est sur le même serveur.

Ce ne serait pas les nouvelles limitations de sécurité avec le 2023.1 ? Je dirais que non puisque DomoticZ se contente d'exécuter le script : ce qu'il se passe dans le script n'est plus du ressort de DomoticZ.
Tu as bien mis un chmod +x sur le script ?

Re: [2023.1] Problème notification via bash

Publié : 16 mai 2023, 21:36
par jackyhi
Oui le script a les droits 775!! et puis ce même script executé sur l'ancienne installation même version même utilisateur s'exécute normalement et également sur le RPI4!!

Re: [2023.1] Problème notification via bash

Publié : 17 mai 2023, 07:09
par jackyhi
Je viens de résoudre mon problème de notification envoyant Error: Script: Insecure script command!

Voici l'explication, en fait les notifications étaient bien envoyées par Domoticz j'ai fait des tests avec des action/on sur un bouton et ça envoyait bien ma notification.
L'erreur se produisait uniquement dans l'onglet: configuration/parametres/notifications/HTTP personnalisé/Action, quand je cliquais sur le bouton tester!!
C'est le paramètrage: POST Content-Type: application/php qui pose problème, je l'ai modifié en application/bash

Image


et la miracle plus de blocage avec message d'erreur!!
Pourtant sur le RPI4 le même paramètrage ne provoquait pas d'erreur!!!

Re: [2023.1] Problème notification via bash

Publié : 17 mai 2023, 12:23
par Keros
Très subtile, bien vu !!

Je déplace ces messages dans un nouveau sujet.

Re: [2023.1] Problème notification via bash

Publié : 21 mai 2023, 23:29
par pierrotori
J'ai application/Json et j'appele le http avec un curl directement dans un Bash mais pas a partir du http de domoticz

L'avantage de le faire comme tu fais est de gérer le code retour afin de pouvoir faire un retry car domoticz ne gère pas l'erreur, merci pour l'idée et réutiliser le shell dans mon crontab aussi