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.