Egy weboldal fejlesztése közben egy nyúllyukba mentem, amikor megpróbáltam elrejteni a forráskódot a végfelhasználó elől. Gyorsan rájöttem, hogy ez nem teljesen lehetséges.
Vannak azonban módok arra, hogy jelentősen megnehezítsük és bosszantóbb legyen a megtekintés.
1. lehetőség – A jobb kattintás letiltása
Néhány gyors ötletelés során az első gondolatom az volt, hogy megpróbáljam megtalálni a módját a jobb kattintás letiltásának (mivel ez a hagyományos módja a webhely kódjának ellenőrzésének).
Rábukkantam erre acikkre.
Meglehetősen egyszerű megoldást kínált, hogy hozzáadja az "oncontextmenu" attribútumot a html body tag-hez, és beállítja a "return false;" értékre. (lásd lent).
<html> <head> ... </head> <body oncontextmenu="return false;"> ... </body> </html>
Ez letiltotta a jobb kattintást, így a felhasználó nem tudja a jobb gombbal kattintani, majd kiválasztani az „Ellenőrzés” lehetőséget.
2. lehetőség – Adott kulcsbevitel letiltása
Míg a jobb kattintás letiltása megnehezítette a forráskód megtekintését, még mindig voltak más módok. A következő gondolatom az volt, hogy letiltok bizonyos kulcsokat, hogy így a végfelhasználó ne tudjon parancsikonokat használni a forráskód eléréséhez.
Átnéztem a Mozilla webdokumentumait, és megtaláltam az Egéresemény részt. Ebben a részben találtam a keydowneseményt, amely egy adott billentyű lenyomásakor aktiválódik. A js-kulcskódok listája itt érhető el. Gyors kutatással megtaláltam azokat a billentyűket, amelyeket a fejlesztői eszközök parancsikonjaként használnak (F12, Ctrl+Shift+i, Ctrl+u).
Ezután létrehoztam egy függvényt a js-ben, amely hamisra értékeli ki, amikor bizonyos kulcskódok érkeznek a keydown eseményből.
<script> document.onkeydown = function (e) { if (window.event.keyCode == 123 || window.event.keyCode == 17 || window.event.keyCode == 16 || window.event.keyCode == 73 || window.event.keyCode == 85) return false; } </script>
3. lehetőség – Forráskód obfuszkálás JavaScripttel(a legjobb lehetőség)
Egy másik lehetőség a forráskód elhomályosítása JavaScript használatával. Ezzel azonban az a probléma, hogy engedélyeznie kell a javascriptet a webhely használatához.
Ezt az online html kód obfuszkátort itt. találtam
Íme egy példa, hogyan működik az alábbiakban.
Bemenet-
<h1>Obfuscate this source code</h1>
Kimenet-
<script>var s="=i2?Pcgvtdbuf!uijt!tpvsdf!dpef=0i2? ";var m="";for(var i=0;i<s.length;i++)m+=String.fromCharCode(s.charCodeAt(i)-1);document.write(m);</script><noscript>You must enable JavaScript to see this text.</noscript>
Amikor ezt a kódot a szokásos HTML formázással veszi körül (!DOCTYPE html, head, body)
Következtetés
Végső soron nincs igazi módja annak, hogy a HTML webhely kódját láthatatlanná tegyük, azonban vannak folyamatok, amelyek jelentősen megnehezítik.
Forduljon bizalommal, ha más megoldást talál.