Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    javascript violabile lato client

    salve, avrei una incomprensione riguardo questa tecnologia JS.

    per concepire meglio la mia perplessità, introduco un esempio. supponiamo di avere questo codice :
    codice:
    <script type="text/javascript">
    	$(document).ready(function() {	
    		$(".stdbodyyestopnobottom").delegate(".commentwidelabelsaveon", "mouseup", function(){		
    			editComments($(this).attr('id'), $(this).parents(".commentwide2").find(".commentwide2textareaon").text());
    		});			
    	});
    </script>
    
    <? $i=0; while($i<50) ?>
    <div class="commentwide3label">
        <div class="commentwidelabelsaveon" id="<?="ids".$i?>">
            [Save]
        </div>										
    </div>
    <? i++; } ?>
    
    function editComments(ids, smex) {
    	$.ajax({
    		type: "POST",
    		url: "./asynch/asynchf.php",
    		data: "ids="+ids+"&smex="+smex+"&id=editcom",
    		success: function(msg){
    //			$("#linkc"+linkc).text(msg);
    		}
    	});
    }
    quando clicco su [Save] l'ascoltatore chiama la funzione editComments che farà una chiamata ajax ad una mia pagina php.

    quello che mi lascia perplesso è questo :
    se la pagina che l'utente utilizza è memorizzata in cache da qualche parte nel browser, è anche possibile modificare tale pagina in modo tale che JS agisca su delle variabili che in realtà non dovrebbero esistere?

    per esempio : nel mio codice l'id della classe .commentwidelabelsaveon và da 0 a 49. però se si potesse modificare la pagina in cache, potrei per esempio sostiruire il valore 40 con 2000 (è giusto un esempio...)?

    perchè se così fosse non avrei mai il totale controllo che gli id che imposto per i vari div vengano utilizzati solo in un determinato modo, in quanto un utente potrebbe modificarli a piacimento.

    quindi, è possibile modificare tale pagina o no?

    lo sò, forse è un pò ingarbugliato come discorso, ma sicuramente qualcuno potrà far più luce di quanto non sappia ora

    cordiali saluti

  2. #2
    guarda che nessuno impedisce a chi guarda la pagina di leggerne il codice HTML (altrimenti come farebbe a vederla) e quindi di leggere le funzioni JS che ci sono. A chiunque basterebbe leggere il path al file asynchf.php e farsi una sua pagina HTML con una sua form che effettui il post e get delle variabili che vuole modificare. Questo si può applicare a qualsiasi form su qualsiasi sito.

    Quello che tu devi fare, in quanto Programmatore PHP, è implementare una serie di controlli lato server proprio per evitare questo tipo di problema. Un esempio? Se l'utente puoi editare un certo id e un altro no, allora hai un sistema per autenticare l'utente in questione, di solito tramite Username e Password associate ad una riga del DB, con i dati che poi salvi in sessione, allora quando fai una richiesta di modifica su un valore tramite l'id devi controllare che l'utente salvato in sessione abbia i privilegi di poter modificare quella riga, sennò sai che casino viene fuori!
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    sisi chiaro, questo lo faccio per ogni pagina di cui un utente ha certi privilegi

    quello che volevo sapere (e che tu hai espressamente chiarito) era sapere se si può modificare una determinata pagina senza dover star lì a creare una propria pagina, ma se si poteva modificare "al volo" la stessa; però effettivamente a stò punto è forse più veloce crearne una da capo che modificare la medesima pagina

  4. #4
    Bah, con firefox forse c'è un plugin che permette di farlo (io non ne conosco), anche se per me la cosa più veloce sarebbe scaricare il codice della pagina e modificarlo in locale. Certo con AJAX non ha molto senso, dato che funziona solo sul dominio in cui vedi la pagina, però con le form basta cambiare la action con il path assoluto del sito e non hai problema.
    I DON'T Double Click!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    cercherò! grazie mille per la chiara spiegazione

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ritorno su questo topic per un'ulteriore delucidazione! ho costruito un form di registrazione per il mio sito, e i controlli sulla validità delle var (esempio, niente spazi vuoti, caratteri speciali non utilizzabili, ecc) son eseguiti lato client con jquery/javascript.

    però, per il discorso fatto fin'ora, questi controlli son solo basilari (per evitare di ricaricare tante volte la pagina dal server) però per la "sicurezza" devo ripetere i medesimi controlli lato server, corretto?

  7. #7
    però, per il discorso fatto fin'ora, questi controlli son solo basilari (per evitare di ricaricare tante volte la pagina dal server) però per la "sicurezza" devo ripetere i medesimi controlli lato server, corretto?
    Ovvio, anche perché ti basterebbe disabilitare il JS del browser per togliere i controlli.
    I DON'T Double Click!

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    bhè...disabilitando JS, non esisterebbe neanche il submit, quindi la possiblità di inviare il form/richiedere la pagina

  9. #9
    mmm, quindi dovrei solo leggere l'url a cui la funzione AJAX fa post e crearmi una form con gli stessi campi per evitare i controlli. Facile.
    I DON'T Double Click!

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    già..anche se nel mio caso non uso nessuna particolare funzione ajax. cmq si, è violabilissimo grazie per il tip...

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.