Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    ajax submit con post: è sicuro (un po ) questo medoto?

    ciao a tutti, spero di fare la domanda giusta nel posto giusto.
    nel caso contrario chiedo venia.

    ho una pagina aperta a tutti dove è possibile postare senza il ricaricamento della pagina

    per farlo ovviamente ho usato ajax con metodo post.
    (tenete presente che sono alle prime armi )

    codice:
    $(function() {	
    	$("#messaggio").validate(
    	{
    		errorClass: "invalid",
    		rules:
    		{
    			nome:{
    				required: true,
    				minlength: 4
    				},
    			mail: {
    					required: true,
    					email: true
    				},
    			testo_messaggio: "required"			
    		},
    		messages:
    		{
    			nome: "<span style='font:18px;'>*</span>",
    			mail: "<span style='font:18px;'>*</span>",
    			testo_messaggio: "<span style='font:18px;'>*</span>"
    		},
    		submitHandler: function (form) { /* gestore submit del form */
    			/* eventuali controlli ... */
    			$.post('process2.php', $("#messaggio").serialize(), function(data) {
    					$('#esito').html(data);
    			});
    		}
    	});
    });
    nella pagina PHP che riceve i dati faccio i seguenti controlli.

    verifico il HTTP_REFERER (ma sul manuale dicono che alcuni user agent possono non compilarlo o modificarlo)

    elimino tutti i caratteri che sono potenzialemnte dannosi e che potrebbero permettere SQL Injection (o almeno lo spero)

    salvo in sessione l'ora e al richiamo della funzione verifico se è passato abbastanza tempo

    domanda:

    questi controlli sono inutili? cos'altro potrei verificare per essere sicuro o evitare problemi inattesi?

    fino a che la pagina aveva pochi accessi/post (6 al mese circa..era praticamente per uso interno) non mi preoccupavo ma ora che la devo rifare in multilingua e (in teoria) gli accessi dovrebbero aumentare, e non vorrei trovarmi con una sorpresa inaspettata.

    attendo fiducioso un vosto consiglio.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma vuoi sapere come verificare/controllare lato server o vuoi sapere se il trasferimento dei dati via ajax in modalità post e sicuro?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    allora ho letto qua e la che il passagio tramite dati jquery post non è propriamente sicuro in quanto uno può passare quello che vuole.

    quello che vorrei sapere è se è possibile assegnare o identificare l'invio di questi valori.

    per esempio dicendo che l'invio avviene dalla data pagina e effetivamente dal mio script e non magari da qualcuno che ha simulato in qualche modo il referer e inviato i dati da uno script jquery fato da lui.

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, simlato o meno richiamando uno script dovresti comunque avere dei controlli di sicurezza lato server.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    i controlli li ho messi.
    come scrivevo prima ho inserito dei controlli per impedire injection.

    ma ad ogni modo mi sarebbe piaciuto fare anche un controllo sulla provenienza effettiva della richiesta.

    al momento la provenienza la valido con il HTTP_REFERER
    ma come è scritto sul manuale non è una cosa molto attendibile.

    quindi speravo o ipotizzavo che ci fosse la possibilità da parte di jquery di inviare alla pagina php o asp un informazione che indichi effettivamente la veridicità della provenienza.

    ma probabilemnte qualunque informazione io possa allegare essendo comunque un metodo post, potrà probabilmente essere intercettata rendendo vano il metodo.

    essendo un sito molto piccolo dubito magari che qualcuno si impegni tanto, ma non si sa mai.

  6. #6
    Beh sbattendoti parecchio (bisogna vedere se ne vale la pena) potresti inviare un token randomico generato da te ed immagazzinato in database, poi quando tramite php vai a ricevere la richiesta dal POST verifichi che il token sia lo stesso.

    Dato che il token in questo caso è casuale e non generato, sarebbe impossibile inviare dati "direttamente" senza passare dalla tua pagina iniziale.

    Il punto è capire da cosa vuoi difenderti, perchè qualsiasi meccanismo che non sia lato server è scavalcabile (ad esempio questo metodo è scavalcabile semplicemente leggendo dalla tua pagina il token ed utilizzandolo per inviare la richiesta tramite "qualcos'altro" però in questo caso comunque la richiesta arriverebbe "tramite" la tua pagina con il form).
    Can You See Curtains? Then Isn't Windows!

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.