Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729

    Modo migliore (più sicuro) per chiamare PHP da Js

    Ho il seguento problema.

    Utilizzando un componente (non scritto da me) ho sul client (e quindi su javascript per capirci) un elenco di chiavi (es. 123,456,789) dentro una stringa.

    Vorrei richiamare, nell'esempio, uno script PHP (che quindi gira sul server) passandogli "in qualche modo" questa stringa.

    Lo PHP script (non fatto da me) opera normalmente su variabili SESSION, cioè invece di prendere i dati da un GET o POST lo fa da SESSION (perchè? non so, penso per motivi di sicurezza).

    Esiste un modo ragionevolmente semplice per inserire in una variabile SESSION del server una stringa dal client?
    Qui ci vuole qualcuno più abituato di me con questo tipo di programmi e comunicazioni.

    Oppure "smonto" la procedura PHP e banalmente gli faccio prendere una GET e buonanotte?


  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se non lo sai tu il livello di sicurezza che deve avere il sistema, dubito che il forum possa darti un consiglio appropriato.
    Forse (e ribadisco forse) angularjs può esserti d'aiuto, se hai voglia, tempo e risorse e vuoi studiarti un framework in javascript lato server potrebbe essere l'occasione buona
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    Quote Originariamente inviata da MySQL Visualizza il messaggio
    Esiste un modo ragionevolmente semplice per inserire in una variabile SESSION del server una stringa dal client?
    non so se ho capito il contesto e il problema... ma puoi inserire la variabile del client "allegata" a quella di sessione
    es: VarSession-VarClient
    poi, lato server, splitti/separi i valori VarSession e VarClient

  4. #4
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Se non lo sai tu il livello di sicurezza che deve avere il sistema, dubito che il forum possa darti un consiglio appropriato.
    Forse (e ribadisco forse) angularjs può esserti d'aiuto, se hai voglia, tempo e risorse e vuoi studiarti un framework in javascript lato server potrebbe essere l'occasione buona
    grazie per il prezioso suggerimento, cercherò di seguirlo

  5. #5
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    non so se ho capito il contesto e il problema... ma puoi inserire la variabile del client "allegata" a quella di sessione
    es: VarSession-VarClient
    poi, lato server, splitti/separi i valori VarSession e VarClient
    Il programma PHP funziona (grosso modo) così
    codice:
    if(!isset($_SESSION)) 
        {
            session_start();
        }
        if (!isset($_SESSION["chiavedocfile"]))
        {
            die;
        }
        $chiave=$_SESSION["chiavedocfile"];
        if (!is_numeric($chiave))
        {
            die;
        }
    Il client invece (sempre grosso modo) così
    codice:
    jQuery("#getselected").click(function(){
        var selr = jQuery('#griddoc').jqGrid('getGridParam','selarrrow');
        
        
        var ids = jQuery('#griddoc').jqGrid('getGridParam','selarrrow');
        if (ids.length>0) 
        {
            var names = [];
        
            for (var i=0, il=ids.length; i < il; i++) 
            {
                var name = jQuery('#griddoc').jqGrid('getCell',ids[i],'chiave');
                names.push(name);
            }
            alert ("Chiavi: " + names.join(", "));
        }
    COME SETTO LA SESSIONE PHP?
    Primo risultato google dà informazioni un pochino contraddittorie
    http://forums.asp.net/t/1064192.aspx...ith+JavaScript

    Secondo pure
    http://stackoverflow.com/questions/1...-in-javascript
    In sostanza la domanda è:
    dal client Javascript posso manipolare una variabile SESSION sul server PHP?

    codice:
    SESSION["chiavedocfile"] = "1,2,3";
    Le risposte variano tra "sì, no, sì con ajax, sì col post - grazie al cavolo - etc".
    Siccome le variabili SESSION stanno sul server, alla fin fine serve un canale di comunicazione client => server che spedisca il valore della variabile, GET, POST, XMLHTTPRequest() o qualche altro "accrocchio" del genere.

    Non penso basti impostare una variabile del client per "magicamente" farla apparire sul server.

    E fin qui penso ci sia poco da aggiungere (salvo clamorose smentite)

    Qual'è il più "furbo" da usare in questo caso?

    Nel senso "il pattern giusto, senza dovermi scontrare con 1000 antipattern per questo caso che ritengo abbastanza comune, visto che ci sono milioni di risultati di ricerca google per oltre 15 anni?"

    Spero che la domanda sia abbastanza chiara.
    Ultima modifica di MySQL; 24-07-2015 a 09:25

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    cioè invece di prendere i dati da un GET o POST lo fa da SESSION (perchè? non so, penso per motivi di sicurezza).
    Per motivi di sicurezza lo dubito, non è che semplicemente i dati si trovano in sessione invece che nella request(vengono inseriti precedentemente da php)? Devi spiegare meglio però, altrimenti si possono fare solo ipotesi. A priori posso dirti che quei dati (elenco di chiavi) li puoi inviare tranquillamente in POST, mentre puoi lasciare i restanti dati in sessione(se già presenti). Se anche ci fosse qualche modo per inserire questi dati in sessione da js(per quanto ne so non è possibile porprio perche si parla di ambienti diversi), questa operazione sarebbe cmq visibile sul client, quindi non cambierebbe nulla rispetto ad una POST per livello di sicurezza.
    Ultima modifica di Vindav; 24-07-2015 a 09:25

  7. #7
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da Vindav Visualizza il messaggio

    Per motivi di sicurezza lo dubito, non è che semplicemente i dati si trovano in sessione invece che nella request(vengono inseriti precedentemente da php)?
    I dati vengono proprio caricati nella SESSION da un altro file PHP, e lì non ci sono problemi (è usata in sostanza come una variabile globale, e vabbè, ci può stare)
    A priori posso dirti che quei dati (elenco di chiavi) li puoi inviare tranquillamente in POST...
    Certo che posso, anche GET ovviamente.
    ... MA... il file PHP "non è mio"
    Se anche ci fosse qualche modo per inserire questi dati in sessione da js(per quanto ne so non è possibile porprio perche si parla di ambienti diversi), questa operazione sarebbe cmq visibile sul client, quindi non cambierebbe nulla rispetto ad una POST per livello di sicurezza.
    Tenderei ad assentire.
    In effetti, se non trovo soluzioni migliori, pensavo di "clonare" il PHP e modificarlo per i fatti miei mettendoci dentro direttamente l'interfaccia GET, chiamandolo brutalmente da javascript senza tanti patemi d'animo.
    Però c'è un però, ovvero la funzione PHP fa qualcosa di oggettivamente piuttosto pericoloso (fa il download dei file), e la cosa un pochino mi turba, devo rifletterci meglio.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    in js prendo le variabili da php in questo modo,
    Codice PHP:
    //  Primary yAxis ( first on the right )
      var SPW_y0type   = '<?php echo $SPW_y1type?>'
      var SPW_y0title  = '<?php echo $SPW_y1title?>'
      var SPW_y0ttip   = ' <?php echo $SPW_y1ttip?>'
      var SPW_y0color  = Highcharts.getOptions().colors[2]  // '#89A54E'
      var SPW_y0min    = '<?php echo $SPW_y1min?>'
      var SPW_y0max    = '<?php echo $SPW_y1max?>'
      var SPW_y0data   = <?php echo json_encode($SPW_y1data); ?>;
    mutuando potrei scrivere, con la dovuta sintassi che ti lascio,
    Codice PHP:
      var SPW_y0max    = '<?php $_SESSION["xyz"]=' + variabilejs + '; echo $SPW_y1max?>'
    non provata e forse ....zata

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    @marino51

    Conosco poco php ma l'ultima riga di codice che hai proposto dubito possa funzionare, prima viene eseguito il codice server poi il codice client, variabilejs non esisterà mai quando verrà eseguita quell'istruzione.

  10. #10
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    in js prendo le variabili da php in questo modo (...)
    Non è per la verità che prendi le variabili PHP, bensì è ques'ultimo che le scrive

    Per il resto, se non ci saranno ulteriori suggerimenti, mi orienterò verso una pagina PHP intermedia che prenda (da GET) la lista dei dati preparata sul cliente da javascript, modifichi opportunamente la variabile dentro SESSION e poi chiami il "vero" programma PHP che pertanto lascerò intonso.

    Non il massimo della vita, intanto provo se funziona come previsto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.