Un astfel de exemplu. Cum să încorporați codul JavaScript într-un cod sursă de script de pagină HTML

Natasha 31 octombrie 2011 la 03:10 JavaScript: Ascunderea scenariului de privirile indiscrete
  • Cameră de depozitare *

V-ați dorit vreodată să ascundeți un script pe pagina dvs. de străini care face să apară un meniu nerealist de frumos sau să efectuați alte acțiuni pe care nu ați dori să le vedeți pe fiecare al doilea site în curând?
Dacă da, atunci metoda prezentată în acest articol vă va fi utilă împreună cu ofuscarea codului. În același timp, voi face imediat o rezervare că metoda nu este 100% eficientă, dar probabil că vă va proteja de majoritatea neprofesioniștilor și de unii profesioniști.

Teorie Să presupunem că avem o pagină nojs.php și pe ea un script secret.js care trebuie ascuns. Browserul și utilizatorul pot primi scriptul de la server în următoarele moduri:
  • Încărcarea unui script plasat direct pe pagină sau încărcat folosind DOM;
  • Vizualizați scriptul în fereastra Cod sursă paginii;
  • Salvarea unei pagini cu toate fișierele pe hard disk;
  • Introducerea unui URL direct în bara de adrese.
  • În primul caz, browserul trebuie să trimită antetul HTTP_REFERER HTTP.
    În al doilea și al treilea caz, nu este transmis de toate browserele (Chrome, FireFox afișează din cache un script descărcat anterior; Opera, IE descarcă din nou scriptul, dar fără trimiterea refererului).
    În al patrulea caz, refererul nu este transmis de niciunul dintre cele patru browsere.
    Dacă lansăm JavaScript în mod dinamic și verificăm prezența antetului referitor în cerere, atunci ne vom proteja imediat de Opera și IE, dar pentru Crome și Firefox va trebui să venim cu ceva mai complicat. Mai întâi vom descărca un script, care la rândul său va descărca un alt script, iar ambele descărcări vor fi verificate pentru prezența unui http-referer. S-a stabilit științific că, dacă creați dinamic un script pe pagina document.createElement(„script”) și apoi îl ștergeți din pagină, scriptul va funcționa ca de obicei, dar nu va fi salvat. Practicenojs.php pagina are un scop de încărcare script1.php
    Găsiți JS După 10 secunde, ar trebui să vedeți scriptul ascuns funcționând sub forma unei alerte, faceți clic pe linkul de după alertă pentru a vă asigura că nici evenimentele nu au căzut. La acest link puteți vedea scriptul ascuns script1.php Sarcina sa: încărcați dinamic script2.php dacă există un antet referitor. Timeout-urile pot fi reduse, în funcție de timpul aproximativ de execuție al scriptului ascuns.
    script2.php Sarcina sa este de a produce scriptul final dacă există un antet referitor
    Rezultate În consecință, obținem că nu putem nici să ne uităm la codul sursă al paginii, nici să descarcăm sau să salvam scriptul ascuns folosind cele patru browsere testate. În general, îl puteți viziona în două moduri:
    • Urmați linkul care duce direct la script2.php și aflat pe pagina site-ului nostru;
    • Formarea unei cereri http care indică antetul referitor.
    Puteți crește eficacitatea ascunderii folosind următoarele metode:
  • Folosind mod-rewrite, înlocuiți script1.js și script2.js care merg la server cu script1.php și, respectiv, script2.php, astfel încât pagina să conțină fișierele js familiare, deoarece php este izbitor;
  • Faceți scenariul fictiv cât se poate de complex, plauzibil și confuz, astfel încât persoana care încearcă să-l analizeze să sufere foarte mult înainte de a realiza că a fost înșelată;
  • Obscurcarea codului.
  • V-ați dorit vreodată să ascundeți un script pe pagina dvs. de străini care face să apară un meniu nerealist de frumos sau să efectuați alte acțiuni pe care nu ați dori să le vedeți pe fiecare al doilea site în curând?
    Dacă da, atunci metoda prezentată în acest articol vă va fi utilă împreună cu ofuscarea codului. În același timp, voi face imediat o rezervare că metoda nu este 100% eficientă, dar probabil că vă va proteja de majoritatea neprofesioniștilor și de unii profesioniști.

    Teorie Să presupunem că avem o pagină nojs.php și pe ea un script secret.js care trebuie ascuns. Browserul și utilizatorul pot primi scriptul de la server în următoarele moduri:
  • Încărcarea unui script plasat direct pe pagină sau încărcat folosind DOM;
  • Vizualizați scriptul în fereastra Cod sursă paginii;
  • Salvarea unei pagini cu toate fișierele pe hard disk;
  • Introducerea unui URL direct în bara de adrese.
  • În primul caz, browserul trebuie să trimită antetul HTTP_REFERER HTTP.
    În al doilea și al treilea caz, nu este transmis de toate browserele (Chrome, FireFox afișează din cache un script descărcat anterior; Opera, IE descarcă din nou scriptul, dar fără trimiterea refererului).
    În al patrulea caz, refererul nu este transmis de niciunul dintre cele patru browsere.
    Dacă lansăm JavaScript în mod dinamic și verificăm prezența antetului referitor în cerere, atunci ne vom proteja imediat de Opera și IE, dar pentru Crome și Firefox va trebui să venim cu ceva mai complicat. Mai întâi vom descărca un script, care la rândul său va descărca un alt script, iar ambele descărcări vor fi verificate pentru prezența unui http-referer. S-a stabilit științific că, dacă creați dinamic un script pe pagina document.createElement(„script”) și apoi îl ștergeți din pagină, scriptul va funcționa ca de obicei, dar nu va fi salvat. Practicenojs.php pagina are un scop de încărcare script1.php
    Găsiți JS După 10 secunde, ar trebui să vedeți scriptul ascuns funcționând sub forma unei alerte, faceți clic pe linkul de după alertă pentru a vă asigura că nici evenimentele nu au căzut. La acest link puteți vedea scriptul ascuns script1.php Sarcina sa: încărcați dinamic script2.php dacă există un antet referitor. Timeout-urile pot fi reduse, în funcție de timpul aproximativ de execuție al scriptului ascuns.
    script2.php Sarcina sa este de a produce scriptul final dacă există un antet referitor
    Rezultate În consecință, obținem că nu putem nici să ne uităm la codul sursă al paginii, nici să descarcăm sau să salvam scriptul ascuns folosind cele patru browsere testate. În general, îl puteți viziona în două moduri:
    • Urmați linkul care duce direct la script2.php și aflat pe pagina site-ului nostru;
    • Formarea unei cereri http care indică antetul referitor.
    Puteți crește eficacitatea ascunderii folosind următoarele metode:
  • Folosind mod-rewrite, înlocuiți script1.js și script2.js care merg la server cu script1.php și, respectiv, script2.php, astfel încât pagina să conțină fișierele js familiare, deoarece php este izbitor;
  • Faceți scenariul fictiv cât se poate de complex, plauzibil și confuz, astfel încât persoana care încearcă să-l analizeze să sufere foarte mult înainte de a realiza că a fost înșelată;
  • Obscurcarea codului.
  • Disclaimer!

    Ceea ce veți vedea în interiorul sursei este un cod groaznic de rahat, pe care este indicat să nu îl utilizați în proiectele voastre pentru a evita toate problemele pe care le-am întâlnit eu cândva. Dacă, desigur, fiind o persoană nemuritoare, decizi să folosești codul meu în proiectele tale, atunci te avertizez că îmi declin orice responsabilitate pentru utilizarea lui și orice probleme pe care le poți întâlni. Când postați diferitele modificări, dacă există, schimbați-le numele, deoarece Police Tools încă există și este acceptat de dezvoltator. Este recomandat să luați astfel de lucruri în serios, deoarece nimeni nu este în siguranță de Takedown și intenționez să protejez drepturile de autor asupra produsului meu până la sfârșitul suportului pentru acest script. Problema drepturilor de autor se aplică nu numai publicării pe BlastHack, ci și pe toate site-urile în general. Mulțumesc pentru înțelegere!

    Explorări fericite!

    Să aveţi o zi bună, domnilor oameni LUA.Astăzi, 1 ianuarie 2019, aș dori să vă prezint codul sursă complet al scenariului meu Instrumente de poliție. Pentru ca oamenii să nu aleargă să-și creeze propriile copii ale creației mele, voi spune că această versiune este suficient de veche încât sistemele sale să nu mai constituie un pericol pentru proiectul meu principal. Voi spune imediat că postez acest proiect aici pentru că... Vreau să ajut oamenii care doresc să cunoască LUA să învețe. Nu este o prostie să copiați codul, să schimbați numele și să transmiteți proiectul drept al dvs., ci să obțineți cunoștințe. Eu, ca nimeni altcineva, înțeleg cum este să încep complet de la zero, fără să am un exemplu mai mult sau mai puțin bun la îndemână. De asemenea, nu voi spune că acest proiect este minunat. Am început să-l scriu 2017, atunci eu însumi tocmai începeam să mă angajez în scripting pe LUA, pot exista sisteme groaznice.

    O mare parte a codului este comentată, nici măcar nu trebuie să te uiți la el, mi-a fost prea lene să-l decup.


    Vă recomand să citiți acest subiect în întregime, altfel cel mai probabil nu veți înțelege nimic când deschideți codul sursă. Gata de citit? Sper ca raspunsul tau sa fie pozitiv. Să începem. ​


    Sursa în sine constă din câteva lucruri pe care începătorii le stăpânesc foarte greu:


    Ferestre și suprapuneri ImGUI [interfață principală]
    Lucrul cu rețeaua [cereri asincrone / solicitări HTTP obișnuite]
    Lucrul cu configurații INI [setări script]
    Lucrul cu dialoguri în mai mulți pași [interfață suplimentară]
    Lucrul cu expresii regulate [model lua]
    Un pic de lucru cu SAMP LUA.


    Acum să discutăm părțile problematice ale codului meu sursă:


    Cod foarte confuz pentru că... Am scris-o de aproape trei ani, Dumnezeu să o binecuvânteze.
    O mulțime de comentarii care, în esență, nu au niciun sens și au fost doar note.
    În unele locuri există un număr mare de linii în loc de una posibilă, dar acest lucru nu este critic.


    Dacă vorbim despre avantaje, putem evidenția următoarele:

    10k cod curat + alte 3k comentarii uneori utile.
    Sisteme private pentru care mi-am plătit cândva banii câștigați cu greu.
    Sisteme de înaltă calitate care pot servi drept surse pentru funcțiile de rețea.


    De asemenea, vă voi simplifica sarcina și voi enumera funcții interesante:

    Joc de rol automat al armelor.

    Poate fi găsit în principal, comentariu [ WEAPON_FUNCTION_BEGIN ]. ​

    Sistem ușor reproiectat de solicitări ciclice asincrone.

    Poate fi găsit prin căutare, funcția [loop_async_http_request]. ​

    Un sistem complet de chat în script cu funcții de mai sus.

    Poate fi găsit pe linia [3985] sau prin cheie. cuvânt [getmsg2.php]. ​

    O bază de date cu drepturi depline a Ministerului Afacerilor Interne va fi de exemplu.

    Poate fi găsit pe linia [8124] sau prin cheie. cuvânt [cmd_database]. ​

    Un sistem complet de legare în script cu etichete.

    Mini MVDHelper, după cum mulți cred, poate fi găsit pe tot parcursul scenariului.


    Acest cod sursă folosește următoarele biblioteci:

    Samp.lua
    draga imgui
    memorie
    codificare [ pentru ImGUI, respectiv ]



    Poate voi adăuga informații utile și interesante la acest subiect. Înțelegi, noaptea de după Anul Nou este întotdeauna dificilă. Dacă am uitat să adaug ceva și l-ai găsit în sursă, atunci scrie în topic, îți voi fi foarte recunoscător. Sper că cu codul meu sursă îi pot ajuta măcar pe unii dintre cei care încep să învețe LUA, sau care încearcă să scrie primul lor script. Dacă aveți întrebări despre sursă, le puteți adresa și în acest subiect. Dacă doriți să lăsați o recenzie, vă rugăm să continuați, întregul subiect vă stă la dispoziție. Și permiteți-mi să vă reamintesc încă o dată că am început să scriu acest scenariu când tocmai studiam, așa că nu ar trebui să-l criticați prea mult. Cu toții suntem oameni, toți facem greșeli într-un fel sau altul. O cerere uriașă, creați scripturi unice, nu repetați după alții, decât dacă, desigur, învățați din exemplul altcuiva. Amintiți-vă, dacă ceva nu funcționează pentru dvs., încercați mai departe - într-o zi veți reuși cu siguranță dacă nu renunțați. Nu încercați să vă ascundeți codul, lăsați oamenii să vadă ce puteți face. La urma urmei, acesta este singurul mod în care te vor putea recunoaște ca o persoană care poate scrie cod și nu se teme să-l arate. Înțeleg că sunt departe de a fi primul care publică un proiect uriaș, dar sper și să nu fiu ultimul care o face. Ei bine, Pavel Garson a fost în legătură cu tine, studiază și realizează tot ce îți dorești. Și da, ofer această sursă pentru revizuire, și nu pentru copiere flagrantă. Dacă îl copiați, scrieți de unde l-ați luat. Și vă mulțumesc tuturor.


    De fapt, cred că absolut nu-ți pasă ce am scris mai sus, doar cauți sursa.
    Respect imens pentru acei oameni care au citit întreg textul cu care am venit după Anul Nou =))

    Este foarte simplu - faceți clic dreapta pe el și selectați elementul corespunzător din meniul contextual. Formularea poate varia în funcție de browserul pe care îl utilizați: în Mozilla Firefox se numește „Sursă”, în Apple Safari - „Vedeți sursa”, în Google Chrome - „Vedeți codul paginii”, în Opera - „Codul sursă”, în Internet Explorer - „Vizualizați codul HTML”.

    Codul sursă al scripturilor de server care generează codul HTML al paginii cu software-ul server configurat în mod normal nu poate fi obținut cu o simplă solicitare. Puteți vizualiza codul sursă al scripturilor PHP sau Perl doar prin descărcarea fișierelor acestora prin protocolul FTP sau prin managerul de fișiere al panoului de control al găzduirii sau al sistemului de gestionare a site-ului. Puteți deschide astfel de fișiere cu un editor de text obișnuit.

    Codul sursă al scripturilor la nivelul clientului care rulează direct în browser (de exemplu, JavaScript) poate fi vizualizat prin extragerea fișierelor acestora din memoria cache a browserului. Și este și mai ușor să salvați paginile cu toate fișierele însoțitoare într-o anumită locație. În acest caz, nu va trebui să săpați prin tot ce este stocat în cache. Pentru a face acest lucru, în orice browser trebuie să apăsați combinația de taste CTRL + S, apoi în câmpul „Tip de fișier” selectați „Pagină web completă”. De asemenea, puteți deschide fișiere cu extensia js care conțin codul sursă al scriptului folosind un editor de text obișnuit.

    Codul sursă al filmelor Flash care sunt descărcate de un browser pe computer nu este atât de ușor de vizualizat. Browserul nu primește codul sursă, ci doar versiunea sa compilată - codul executabil. Cu toate acestea, există programe de decompilare care pot efectua procedura de conversie inversă. De exemplu, Flash Decompiler de la Trillix este încorporat în browser și vă permite să extrageți un obiect Flash dintr-o pagină și să îl salvați. Până atunci, deschizând blițul în decompiler, veți avea acces la componentele sale individuale - imagini, scripturi, sunete etc. Desigur, acest cod nu va corespunde pe deplin codului sursă al autorului, ci doar cu un grad de precizie suficient pentru funcționare.

    „Codul sursă” se referă cel mai adesea la codul unui program într-un limbaj de programare care poate fi citit de om (la nivel înalt). Având acest cod, puteți face modificări în program (script, film flash, aplicație java, program de aplicație etc.). Autorul sau distribuitorul programului determină dacă să distribuie codul sursă împreună cu produsul finit. Există o întreagă clasă de aplicații care sunt distribuite „open source”; codul sursă al altor programe (de exemplu, scripturi JavaScript sau pagini HTML) prin definiție nu poate fi ascuns, iar codul sursă al altor programe este supus dreptului de autor.

    Instrucțiuni

    Obțineți codul sursă deschisă al aplicației pe site-ul web al autorului sau distribuitorului acestui produs software. De obicei, puteți afla adresa site-ului web în secțiunea de meniu numită „Ajutor” dacă selectați elementul „Despre program” din acesta.

    Faceți clic dreapta pe o pagină web dacă doriți să accesați codul sursă. În orice browser, meniul contextual care apare va conține o comandă pentru a vizualiza sursa, deși formularea poate varia ușor. Puteți face fără meniul contextual - combinația de taste ctrl + u dublează apelul la comanda de vizualizare sursă. Unele browsere au instrumente de vizualizare încorporate (Mozilla Firefox, Google Chrome), altele folosesc programe externe pentru aceasta - cel mai adesea Notepad. Puteți salva sursa paginii obținută în acest fel într-un fișier.