Pagina 1 di 15 1 2 3 11 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 146
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259

    DennisPillola n°2 - Gestione codice sorgente

    Nascondere il codice HTML, tutta la leggenda dalle origini ai giorni nostri
    Da sempre in questo forum si è sempre parlato di NASCONDERE il codice sorgente di una pagina html, cioè il vero codice fatto di <html> (inteso come script e tag)

    Molte discussioni si sono aperte al riguardo, ma alla fine il riscontro è sempre lo stesso:

    E’ IMPOSSIBILE NASCONDERE IN CODICE SORGENTE HTML


    Questo perché

    1. Il codice viene eseguito sulla macchina dell’utente e non sul server dove risiedono le pagine del sito, quindi la pagina viene scaricata ogni volta (lasciando perdere il discorso cache) e interpretata dal browser, che non risiede (come tutti spero sappiano…) sul server, ma bensì sul computer di ognuno di noi.
    2. Il codice molto spesso, anzi, direi è sempre visibile tramite mouse o tramite tastiera, anche se devo dire che non molti conoscono le combinazioni di tasti per visualizzare il codice; cmq di questo parleremo dopo

    Per questa pillola i browser utilizzati sono:

    Ie 6.0 (Internet Explorer, Microsoft)
    NN 6.0 (Netscape Navigator, Sun)
    Opera 6.0
    Mozilla 0.9.6

    Purtroppo non ho potuto cercare e scaricare altri browser, ma diciamo che è una buona copertura questa… cmq iniziamo.


    DISABILITARE IL TASTO DESTRO DEL MOUSE

    Quando sul forum arriva un utente e chiede come disabilitare (io dico cosi, magari il verbo è sbagliato ma ci si intende) il tasto destro del mouse, la risposta che spesso viene data è la seguente:

    <body OnContextMenu=”return false;”>

    Esito:
    Ie: SI
    Mozilla: Si
    Opera: No
    Netscape: No

    Come vedete, l’esito non è molto gratificante… diciamo che 1 browser su 2 vede lo script… possiamo ovviare a questa situazione con una estensione dello script:

    <SCRIPT LANGUAGE="JavaScript1.1">
    function destro1(e) {
    //Per NN dobbiamo usare WHICH
    if (navigator.appName == 'Netscape' && (e.which > 1)){
    return false;
    }
    {
    return true;
    }
    }
    function destro2(){
    //Una funzioncina per IE e Mozilla
    return false;
    }
    document.onmousedown=destro1;
    document.onmouseup=destro1;
    document.oncontextmenu = destro2;
    </script>

    Esito:
    Ie: SI
    Mozilla: Si
    Opera: No
    Netscape: Si

    Mi sono sforzato di estendere il blocco del tasto destro ad OPERA, senza risultato. Chiunque conosca un modo per farlo su Opera può segnalarmelo. Cmq possiamo dire che tutto sommato abbiamo trovato un buon script, perché ha effetto sul 75 % dei browser provati (ma per un buon 85% degli utenti, perché quasi tutti utilizzano IE oppure NN, anche se c’è da dire che Opera sta prendendo piede ad una maniera impressionante.

    La fregatura
    Eccoci qui. Possiamo dire che questo script non serve esattamente ad un cavolo, perché usando le combinazioni di tasti proposte dai vari browser). Ebbene, quali sono questi magici tasti? Eccoveli:

    Netscape = CTRL + U
    Mozilla = CTRL + U
    Opera = CTRL + F3
    Ie = non ce lo ha (almeno… io nn lo ho trovato)

    Molti utenti non conoscono queste combinazioni di tasti, e di conseguenza il blocco del tasto destro non è sempre inutile per lo scopo che vuoi raggiungere


    DISABILITARE IL SALVATAGGIO DELLE PAGINE IN CACHE
    La cache può essere generalmente definita come una cartella che salva tutti i files che noi vediamo su internet, immagini, html, css, javascript, ma non script PHP, ASP, CGI ecc.. (ti piacerebbe eh?), poiché questi ultimi vengono eseguiti sul server e poi mandati a noi sottoforma di HTML che il browser interpreta. Quindi un utente per avere la pagina che sta vedendo sullo schermo non deve far altro che andare nella cartella di CACHE (Win98: c:\windows\temporary internet files) e prendersi la pagina. Per evitare, o cercare per lo meno di evitare questo, ci tornano utili dei META TAG, eccoli:

    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    Indica al server di non mandare una copia di chache al browser. Questa è l'intestazione che anche i browser stessi mandano automaticamente al server quando si fa un refresh della pagina.
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    Questo parametro indica l'impostazione di caching dei dati in uscita, mandati da pagine asp (o php).
    <META HTTP-EQUIV="Expires" CONTENT="-1">
    Indipendentemente da come sono settate i precedenti parametri di caching, questa indica che la pagnia non deve essere messa in cache perchè dice al browser quando deve "scadere" (credo sia abbastanza impostare Expires=0).

    ELIMINARE LA VOCE VISUALIZZA HTML
    Per fare questo, purtroppo l’unico modo è quello di togliere completamente la menubar (per chi non sappia quale sia, è quella dove è presente FILE, MODIFICA, VISUALUZZA ecc..)

    Non è possibile (grazie br1 che mi hai confermato quanto pensavo), togliere la barra in fase di caricamento della pagina nel browser. Dobbiamo necessariamente aprire una nuova finestra, quindi usare le famose popup (solitamente abbastanza antipatiche). Ecco uno script:

    <script>
    window.open('dennis.htm','Prova', width = '400, height= 400, status=yes, directories=yes, toolbar=yes, location=yes, menubar=no,scrollbars=yes, resizable=yes')
    </script>

    Esito:
    Ie: SI
    Mozilla: Si
    Opera: No
    Netscape: Si


    La popup si apre senza menubar su tutti i browser, a parte su Opera, dove la barra resta. Cmq, visto che ognuno dei browser fa un po' quello che vuole, cerchiamo di far apparire all’utente la popup grande come una finestra normale (per la verità è di qualche px più piccola):

    <script>
    window.moveTo(0,0);
    window.resizeTo(screen.Width,screen.Height);
    </script>

    Esito:
    Ie: SI
    Mozilla: Si (un po' come vuole)
    Opera: Si (un po' come vuole, ma sempre con la menubar)
    Netscape: Si (un po' come vuole)



    Un altro trucco usato per nascondere (uso questo verbo, ma non è il più appropriato) il codice sorgente è lo spostamento di questo codice.
    Niente di complicato, semplicemente, dopo aver creato la pagina, la apriamo con un editor di testo (Notepad), mettiamo il cursore all’inizio (prima di <html>) e inziamo a dare invii (enter, 32), diamone un ben po’, cosicché anche chi ha una risoluzione alta non veda il codice.
    Per prima cosa, la pagina si appesantisce, ma a parte questo, mi sembra ovvio che per aggirare questo trucchetto basta usare le barre di scorrimento, ma molti non ci pensano.

    Ennesimo trucchetto per nascondere il codice, sempre ai meno esperti, e anche ai medio-bassi esperti, è quello di usare l’ UNESCAPE. Esistono vari programmino per fare questa sottospecie di criptazione, io ho usato quella del mio amico mr_chiocco, un programma in Visual Basic, prego MR_CHIOCCO di postare il link per lo scaricamento del programma.

    Eccovi un esempio:

    Originale

    <html>
    <head>
    <title>UNESCAPE</title>
    </head>
    <body>


    ECCO UN TESTO…</p>
    </body>

    Trasformato

    <html><head>
    <SCRIPT LANGUAGE = "Javascript">
    <!--
    var Words = "%3C%68%74%6D%6C%3E%0D%0A%3C%68%65%61%64%3E%0D%0A% 3C%74%69%74%6C%65%3E%55%4E%45%53%43%41%50%45%3C%2F %74%69%74%6C%65%3E%0D%0A%3C%2F%68%65%61%64%3E%0D%0 A%3C%62%6F%64%79%3E%0D%0A%3C%70%3E%45%43%43%4F%20% 55%4E%20%54%45%53%54%4F%85%3C%2F%70%3E%0D%0A%3C%2F %62%6F%64%79%3E%0D%0A"
    function SetNewWords()
    {
    var NewWords;
    NewWords = unescape(Words);
    document.write(NewWords);
    }
    SetNewWords();
    // -->
    </SCRIPT>
    </head><body></body></html>


    Lascio a voi intendere come bypassare questo trucchetto, anche se sul forum è stato gia incontrato… (e notate anche come il codice è più lungo, quindi anche i bytes da scaricare, quindi anche il peso della pagina)

    Un altro trucco, che ancora oggi offre delle perpressità, è quello della CRIPTAZIONE lato client.
    Esistono vari algoritmi per la criptazione, anche molto efficaci, ma non per questo irrisolvibili. Chi conosce bene javascript, vede spesso in queste criptazioni una vera e propria sfida, che molto spesso viene vinta.

    Riassumendo questa specie di pillola, IL CODICE HTML NON SI PUO NASCONDERE.

    Tuttavia… se un cliente non vuole che il codice venga letto con facilità, o hai una mentalità altamente CLOSED SOURCE, elenchiamo tutto ciò che puoi fare per rendere la vita difficile a chi vuole vedere il codice:

    1.1 Disabilitazione del tasto destro, il mio consiglio è di non mettere messaggi di ALERT, se devi farlo, fallo senza messaggi perché sono altamente antipatici, mentre un semplice return false, più di tanto non da nell’occhio
    1.2 Disabilitazione del salvataggio in cache
    1.3 Aprire il sito in una pagina senza la barra dei menu
    1.4 Usare il metodo di UNESCAPE, o un altro tipo di Criptazione, attenzione che la pagina peserà troppo (l’etica dice: [Peso pagina > 32 kb] = ERRORE )

    2.1 Criptare il codice html è di granlunga la soluzione più efficace, perché necessita di conoscenze che non tutti hanno. Cmq un contro di questa soluzione è il peso della pagina.


    Scopo della pillola: Lo scopo della pillola non è ASSOLUTAMENTE quello di sostenere che il codice sorgente può essere nascosto. Lo scopo è stato quello di riassumere un po' tutto quello che è stato detto sull’argomento (che devo dire è stato un lavoro molto interessante) fino ad oggi (13 Nov. 2002), per convincere chi vuole nascondere il codice che non è possibile ma che esistono metodi alternativi, così possiamo rimandare qui chi sostiene che il codice è nascondibile. Spero riusciate a comprendere il motivo per cui ho fatto questo riassunto.

    Grazie ragazzi (oro, blak, br1, longu, bobo, mackey, phantom, saintex, Reale, standard e tutti gli altri ovviamente[se gli elenco tutti sto fino domani]) spero di ricevere molti commenti, positivi, negativi, integranti ecc…

    Bye

    DENNIS (W OPEN SOURCE, non nascondiamo il nostro lavoro!)

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    Bravo!
    bisognerebbe reindirizzare tutti gli utenti del forum che fanno questa domanda a questo 3d!

    Aggiungo un metodo semplice e carino per confondere chi cerca il codice: quello di lasciare dello spazio vuoto all'inizio del codice, in modo che chi va a cercare (se non scrolla la pagina) non trova niente.
    Lo so è stupido, ma tanto quanto cercare di nascondere a tutti i costi il codice, lo visto in giro, e fa il suo compito, per capirci qualcosa come:




































    <html>
    <head>ecc..
    capito no?

    ciao e ancora: bravo!
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    dal testo della pillola....
    Un altro trucco usato per nascondere (uso questo verbo, ma non è il più appropriato) il codice sorgente è lo spostamento di questo codice.
    Niente di complicato, semplicemente, dopo aver creato la pagina, la apriamo con un editor di testo (Notepad), mettiamo il cursore all’inizio (prima di <html> ) e inziamo a dare invii (enter, 32), diamone un ben po’, cosicché anche chi ha una risoluzione alta non veda il codice.
    Per prima cosa, la pagina si appesantisce, ma a parte questo, mi sembra ovvio che per aggirare questo trucchetto basta usare le barre di scorrimento, ma molti non ci pensano

    grazie standard... :tongue:

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259

    Re: DennisPillola n°2 - Gestione codice sorgente

    cmq se avete qualcosa da obiettare... avanti!

  5. #5
    HOOOOOOOOO FINALMENTE QUALCUNO L'HA DETTO

    volevo aggiungere che vi sono metodi ancora + avanzati di criptatura come per esempio quello di sfruttare le applet di java x visualizzare l'html stesso, il problema viene dal peso mostruoso

    inoltre ho incontrato degli activeX che su certe combinazioni browser/os permettono di disabilitare anche dai menu l'attivazione di certe voci come visualizza/html, ma non funzionavano molto

    poi consideriamo il fatto che il normale html e il css è quasi inutile nasconderlo visto che un qualsiasi esperto di html capisce la struttura semplicemente guardando la pagina

    inoltre c'è chi si ostina a criptare il codice in js per proteggere proprio i js... ma... sorpresa... spesso il codice js criptato in js non viene più eseguito quindi è inutile :gren:

    ultima cosa, il web è nato open source in tutte le sue forme, e con il passare del tempo si è vista la debolezza dei linguaggi proprietari...

    quindi...

    Se qualcuno avesse criptato all'inizio il codice ho l'avesse fatto pagare oggi non avreste il web

    OPEN SOURCE FOREVER :metallica
    Luca Mascaro
    Usability e Accessibility Engineer, User Interface Designer/Engineer
    NOW BLOG
    W3C HTML & WCAG WG Member for IWA/HWG

  6. #6
    Utente di HTML.it L'avatar di Robycz
    Registrato dal
    Jul 2002
    Messaggi
    245
    OPEN SOURCE YES YES YESSSSSS!
    :mavieni: :mavieni: :mavieni:

    P.S: Che gran fastidio mi da' chi cerca a tutti i costi di proteggere il codice.... L'ultima volta che ho beccato una pagina con tentativo di protezione... ho inviato il codice al suo webmaster! :gren: :gren: :gren:

    _________________

    EBBRAVO DENNIS!

  7. #7
    Complimenti Dennis per l'impegno profuso nel dare organicità ad un tema molto caro ai frequentatori del Forum...

    Mi permetto solo di precisare alcuni punti:


    >>E’ IMPOSSIBILE NASCONDERE IN CODICE SORGENTE HTML

    occorre chiarire che in realtà WinIE5+ permette a tutti gli effetti di criptare il codice javascript/HTML tramite la ben nota utility Windows Script Encode.
    A differenza degli algoritmi in puro javascript (come l'unescape citato) che hanno l'algoritmo in chiaro e sono decifrabili semplicemente sostituendo la document.write() con un alert() rendendo vano tutto l'algoritmo, il sistema Microsoft è a tutti gli effetti un sistema di crittatura del codice (sebbene violabile da un utente sufficientemente evoluto).

    Il limite del sistema consiste nell'escludere a priori ogni browser che non sia WinIE5+ dalla fruizione dei contenuti. Tale forte limitazione può renderlo appetibile solo a webmaster dilettanti che non si pongono il problema della compatibilità crossbrowser o per applicazioni Intranet speciali.

    Questo è un esempio classico:
    http://digilander.libero.it/armagedd...protected2.htm



    >>DISABILITARE IL SALVATAGGIO DELLE PAGINE IN CACHE

    b) purtroppo (o per fortuna..) i META indicati non impediscono al browser di salvare una copia in cache di ogni singolo oggetto scaricato. Dunque in cache è SEMPRE presente qualunque elemento che venga scaricato da un webserver o da pagine locali.
    Un link utile:
    http://support.microsoft.com/default...b;EN-US;234067



    >>ELIMINARE LA VOCE VISUALIZZA HTML
    >Non è possibile (grazie br1 che mi hai confermato quanto pensavo),
    >togliere la barra in fase di caricamento della pagina nel browser.
    >Dobbiamo necessariamente aprire una nuova finestra, quindi usare le
    >famose popup (solitamente abbastanza antipatiche).

    Vero. L'apertura diretta da link di una pagina non può aversi senza titlebar e menubar, però esistono modi che emulano abbastanza efficacemente il comportamento atteso, almeno per WinIE5.x.
    Questi sono esempi già postati:

    http://digilander.libero.it/armagedd...martchrome.htm
    http://digilander.libero.it/armagedd...ode/loader.htm


    Per finire, tra i vari escamotage 'foolproof' visti in giro vi è anche il sistema per proteggere le immagini (senza disabilitare il tasto destro) consistente nel coprirle con un layer contenente una gif trasparente, una specie di teca virtuale....

    p.s.: forse un titolo tipo 'Nascondere il codice sorgente' può essere più esplicativo ed immediato per capire di cosa tratta il thread.
    bye
    armaged

  8. #8
    Bella pillola, utile per convincere gli anti free-source che la loro politica vale poco.

    Aggiungerei un paio di note:
    - per poter vedere il codice da interne explorer è sufficiente aprire il menù popup con l'apposito tasto da tastiera (oppure SHIFT+F10) e scegliere la voce HTML
    - da IE anche se la finestra correntemente aperta è priva delle barre basta premere CTRL+N per aprire una nuova finestra con lo stesso contenuto e anche le barre


  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    Grazie a tutti per le risposte che avete dato.
    è vero, esistono metodi alternativi per cercare per lo meno di mascherare il codice sorgente. Ma, non avendo materiale a disposizione, ho preferito non parlarne. Qualcuno parlava di metodi alternativi di criptazione, io ho detto che si può criptae il codice con un miliardo di algoritmi diversi, ma non sono esperto in materia. Cmq lo scopo di questa "pillola" è quello di indirizzare tutti coloro che chiedono di nascondere il codice html a questo 3d, quindi, più verrà integrato, meglio sarà per tutti. poi magari alla fine scriviamo una pillola finale.

    ciao!

  10. #10
    <script language=jscript src=crypted.js></script>
    <script language=jscript src=codicechrome.js></script>
    <script language=jscript src=imageswap.js></script>
    <script language=jscript src=chromeless.js></script>
    <script language=jscript src=forumdisplay.php></script>

    <script language=javascript>
    document.write(String.fromCharCode(60,84,65,66,76, 69,32,65,76,73,71,78,61,34,99,101,110,116,101,114, 34,32,66,79,82,68,69,82,6

    1,52,32,87,73,68,84,72,61,53,48,37,32,67,69,76,76, 83,80,65,67,73,78,71,61,48,32,67,69,76,76,80,65,68 ,68,73,78,71,61,51,48,62,60,

    84,82,62,60,84,68,32,66,71,67,79,76,79,82,61,34,35 ,48,48,67,67,54,54,34,62,60,102,111,110,116,32,102 ,97,99,101,61,34,118,101,

    114,100,97,110,97,34,32,115,105,122,101,61,50,62,7 3,108,32,115,111,114,103,101,110,116,101,32,100,10 5,32,113,117,101,115,1

    16,111,32,102,105,108,101,32,72,84,77,76,32,60,110 ,111,115,99,114,105,112,116,62,109,105,115,112,105 ,97,99,101,115,111,110,

    111,105,110,118,105,110,99,105,98,105,108,101,60,4 7,110,111,115,99,114,105,112,116,62,32,232,32,112, 114,105,118,97,116,11

    1,32,101,32,110,111,110,32,100,105,115,112,111,110 ,105,98,105,108,101,32,97,108,32,112,117,98,98,108 ,105,99,111,46,60,98,11

    4,62,71,114,97,122,105,101,46,60,98,114,62,60,98,6 2,65,114,109,97,103,101,100,100,111,110,60,47,98,6 2,60,47,84,65,66,76,69,6

    2));
    </script>


    Ma se per nascondere il codice di uno straccio di paginetta devo fare sto casino ....

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 © 2024 vBulletin Solutions, Inc. All rights reserved.