234 messaggi dal 08 marzo 2012
Ciao,

è possibile criptare file js e html?
Se sì con quali tool?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

evil80 ha scritto:

è possibile criptare file js e html?

Anche se fosse possibile, ad un certo punto dovresti comunque decrittarli affinché il browser possa interpretarli. A quel punto è facile per un utente esperto usare la console di sviluppo del browser (tasto F12) per esaminare il DOM - ovvero l'albero logico degli elementi HTML - che in quel momento si trova caricato in memoria.

Il massimo che puoi fare è minificare e/o offuscare il file .js ma questo non impedirà ad un utente determinato di copiare il tuo contenuto.

Spiega bene la situazione in cui ti trovi, magari esistono altre soluzioni.

Nel frattempo, ti linko una discussione su StackOverflow con delle risposte umoristiche sull'argomento :)
http://stackoverflow.com/questions/2832077/how-to-make-html-file-encrypted

ciao,
Moreno

Enjoy learning and just keep making
234 messaggi dal 08 marzo 2012
Ciao,

il discorso html mi è chiarissimo.
Vorrei invece criptare il codice JS, semplicemente perché contiene parte della logica applicativa...e non vorrei che chiunque possa accederci o comprenderla.
Con gli obfuscator si riesce ad ottenere un buon livello di sicurezza?

Quale tool consiglieresti di utilizzare?

Grazie!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao e buona domenica!

evil80 ha scritto:

Con gli obfuscator si riesce ad ottenere un buon livello di sicurezza?

No, quasi nessuno, perché la sicurezza tramite segretezza non è sicurezza. Il tuo codice, seppur offuscato, è lì in bella vista e nulla impedisce ad un utente malintenzionato di alterarne il funzionamento. L'offuscamento serve solo a complicargli leggermente le cose. Può giusto scoraggiare i novizi.

evil80 ha scritto:

contiene parte della logica applicativa

Può anche andar bene che parte della logica sia lato client ma per nessun motivo un utente deve riuscire a compiere delle operazioni per cui non ha il privilegio. Se anche ci provasse alterando il tuo codice javascript, il server dovrà restituirgli un errore.

Alla fine, se fossi io l'utente malintenzionato, non avrei neanche bisogno di manipolare il javascript ma mi basterebbe osservare le richieste HTTP che il client invia al server ed andrei a riprodurle con dati alterati usando Fiddler. E' per questo che la logica di validazione e di autorizzazione devi tenerla lato server, perché è il tuo primo e ultimo bastione che protegge i dati contenuti nel database.

ciao,
Moreno
Modificato da BrightSoul il 15 febbraio 2015 09.55 -

Enjoy learning and just keep making
234 messaggi dal 08 marzo 2012
Ciao,

prima di tutto grazie.
Condivido in assoluto quanto dici, il quesito/problema è questo.
Una parte dell'applicazione è volutamente anonima nel senso che puoi inviare dati tramite una mobile web app in forma anonima.

i quesiti sono:
- come posso evitare attacchi di Ddos non potendo riconoscere l'utente in quanto anonimo e non si necessita di autenticazione?

-come posso sapere se i dati provengono effettivamente dalla mia web app e non sono invece stati generati/manipolati?
Se anche creassi una sorta di "crc" questo dovrebbe essere generato sul client e matchare con quanto il server si attende.
Ma il codice JS sarebbe visibile quindi un malintenzionato potrebbe capirne la logica e replicare anche il crc.

in generale quindi come posso proteggere una web app che per sua natura deve per forza funzionare in anonimo?

Grazie mille davvero!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, prego!

Dunque, le questioni sono varie, vediamo se riesco a rispondere:
  • Se anche creassi una sorta di "crc" questo dovrebbe essere generato sul client e matchare con quanto il server si attende.
    Puoi usare un captcha da far risolvere all'utente all'inizio della sessione oppure ogni volta che invia dei dati (a seconda del caso). Alcuni utenti lo trovano noioso ma in qualche modo devi pur distinguere l'utente umano da un bot.
  • come posso sapere se i dati provengono effettivamente dalla mia web app e non sono invece stati generati/manipolati?
    Per quanto possibile, dovresti fare in modo che sia inutile manipolarli. Mi spiego: se la tua applicazione è un gioco, non dovresti calcolare il punteggio lato client ma lato server, in base alle azioni svolte dall'utente nel corso del gioco. Abbiamo trattato qualcosa di simile in questa discussione. Può darsi che si applichi anche al tuo caso.
    http://forum.aspitalia.com/forum/post/395061/Scambiare-Dati-Computer-Internet.aspx?PageIndex=2#395822
    Poi, si sa, gli utenti determinati riesco a barare anche in quelle situazioni. Pensa a quelli che usano gli aimbots negli FPS: quello è un piccolo software in grado di simulare l'attività umana, in modo che al server sembri che è stato proprio l'utente a compiere quelle azioni.
  • come posso evitare attacchi di Ddos
    Non puoi propriamente "evitarli", ma puoi limitarne gli effetti se ti affidi alla giusta infrastruttura di rete. Ricorda che un attacco DDOS non ha lo scopo di corrompere la tua base dati, ma di interrompere il servizio inondandolo di richieste. E' un problema che riguarda più il networking, che l'applicazione.
    Se la tua webapp è ospitata su Microsoft Azure, allora puoi difenderti egregiamente perché sono già in atto degli accorgimenti di protezione da DDOS. Dalla whitepaper Windows Azure Network Security:

    Windows Azure has a distributed denial-of-service (DDoS) defense system that helps prevent attacks against Windows Azure platform services. It uses standard detection and mitigation techniques such as SYN cookies, rate limiting, and connection limits.


ciao,
Moreno
Modificato da BrightSoul il 16 febbraio 2015 22.29 -

Enjoy learning and just keep making
1 messaggio dal 07 settembre 2017
Anche se fosse possibile, ad un certo punto dovresti comunque decrittarli affinché il browser possa interpretarli
proteggere il codice sorgente di javascript: javascript obfuscator

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.