Petite question sécurité aujourd’hui
Pensez-vous qu’il y ait un risque potentiel à utiliser un replace du username et du password du compte configuré ds mon plugin dans mon toHtml ?
Je vais en effet en avoir besoin pour une requête ajax !
Tu veux faire ta requête depuis le browser vers le site distant?
Pourquoi tu ne passes pas par le backend (ton code php)?
Sinon en soit c’est une info que l’utilisateur connait déjà probablement (attention qu’il pourrait y avoir des profils non-admin sur jeedom qui n’ont en théorie pas accès à la config du plugin…) et est déjà disponible sur coté client dans la config de ton plugin à priori donc pas un grand risque (hormis de divulguer le password à un utilisateur jeedom qui ne devrait pas l’avoir car il n’est pas admin) mais malgré tout je dirais d’éviter de faire ca
En fait il s’agit pour moi d’appeler une fonction de ma class après que l’utilisateur ait rempli des champs dans une modale.
Dans mon widget, je ne peux donc pas appeler ma fonction directement comme pour la plupart des actions avec un jeedom.cmd.execute()
Je voulais dans un premier temps le faire directement dans ma modale puisque je passe en paramètre l’id de mon équipement. Je pouvais donc lancer ma commande en php sans problème.
Mais mon appel à ma modale et au bouton « envoyer » se fait depuis mon widget avec le code suivant :
('.cmd[data-cmd_id=#sendPOI_id#]').on('click', function () {
$('body').append('<div id="mod_sendPOI" style="overflow-x: hidden; overflow-y: hidden;"/>');
$("#mod_sendPOI").dialog({
title: "Envoi POI",
closeText: '',
autoOpen: false,
modal: true,
height:220,
width:445
});
jQuery.ajaxSetup({async: false});
$('#mod_sendPOI').load('index.php?v=d&plugin=myBMW&modal=SendPOI.myBMW&eqLogic_id='+'#id#');
jQuery.ajaxSetup({async: true});
$('#mod_sendPOI').dialog('option', 'buttons', {
"Envoyer": function () {
var nameInput=$("#mod_sendPOI").find('input[name="name"]').val();
var latInput=$("#mod_sendPOI").find('input[name="lat"]').val();
var longInput=$("#mod_sendPOI").find('input[name="long"]').val();
$.ajax({ ... })
}
});
$('#mod_sendPOI').dialog('open');
});
Et du coup je fais une requête ajax mais avec le besoin d’avoir le username et password.
L’autre solution serait peut-être de gérer mon bouton dans ma modale directement et d’appeler ma fonction depuis mon eqLogic directement. Resterait à fermer la modale depuis ce bouton.
oui c’est tout à fait ca ! Et j’étais parti la dessus dans un premier temps mais je butais pour fermer ma modale. D’où mon changement de stratégie pas forcément intelligent
Bon ben je m’en suis sorti grâce à @nebz pour fermer cette fichue modale Je hais le jQuery
Du coup plus besoin de passer le user et password via un replace dans mon widget puisque ma requête AJAX est maintenant directement dans mon fichier php ! Mais je note qd même d’éviter ca !