1
votes

Comment masquer le code source html du site Web lorsque l'utilisateur utilise l'option Afficher la source

Je vois certains sites Web qui cachent le code source lorsque j'essaie de visiter l'option "Afficher la source" du navigateur ... comme la page suivante ...

 view-source:https://www.swiggy.com/bangalore/restaurants

Comment font-ils cela ? quelle technologie ils utilisent pour qu'il ressemble à un morceau de javascript au lieu d'un code HTML entièrement formel que nous utilisons pour générer une page Web?

Aussi quand je vois le même site Web swiggy.com dans un téléphone mobile qui fonctionne comme même que l'application Android d'entre eux. Utilisent-ils un framework qui les aide à obtenir cette sensation d'application ou utilisent-ils AJAX / HTML uniquement pour nous faire sentir comme leur application?


5 commentaires

Ils ne cachent rien, ils minifient simplement le code à l'aide d'un minifier


Je vois du code lisible par l'homme. Dans quel sens le considérez-vous comme «caché»?


Si vous devez masquer le code source de votre navigateur, vous faites quelque chose de mal ...


Ce site utilise un framework SPA, pas du HTML minifié. Vous pouvez afficher le code HTML généré à l'aide des outils de développement du navigateur. Il n'est pas possible d'empêcher les utilisateurs d'afficher le code source de la page; tout au plus, vous pouvez le rendre légèrement gênant.


@DanielBeck - Merci pour l'information. oui je sais que les outils de développement me permettent de tout voir ... mais je veux cette approche pour que les gens ne comprennent pas instantanément comment le code source est fait ...


7 Réponses :


0
votes

Je voulais juste souligner que je suis nouveau dans ce domaine, mais peut-être que cela peut aider:

Vous pouvez utiliser

<script language="javascript">
  document.onmousedown = disableclick;
  status = "Right Click Disabled";
  Function disableclick(e)
  {
    if(event.button == 2)
    {
      alert(status);
      return false; 
    }
  }
</script> 

ou

<body oncontextmenu="return false">
  ...
</body>

Remarque: comme beaucoup de commentaires déjà, ce n'est pas vraiment possible mais je laisserai ce code juste au cas où cela aiderait dans votre cas particulier.

comment masquer mon code source pour ne pas être copié

https: // www.codeproject.com/Articles/11222/Disabling-the-right-click-on-web-page


4 commentaires

@RyanWilson c'était un lien - mon mauvais! Mais édité pour satisfaire


@Malcolm Pas de soucis, bienvenue et ne te sens pas mal d'être nouveau. C'est bien que vous ayez ajouté le code réel à votre réponse, si vous comprenez ce que vous avez publié, l'ajout de commentaires pour expliquer le code est également utile. Je vous ai donné un +1 pour la tentative, car quelqu'un a décidé de vous rejeter même si vous êtes nouveau et que vous apprenez simplement les ficelles du métier.


Pas de rejet de ma part, mais: la désactivation du menu contextuel n'empêche pas les utilisateurs de voir le code source (il n'y a aucun moyen de le faire), et cela désactive les fonctionnalités utiles dans le processus.


Merci les gars! J'apprécie les commentaires, je l'ai modifié à nouveau pour le rendre plus approprié



1
votes

Vous ne pourrez pas masquer le HTML. Vous pouvez minifier, faire beaucoup d'espaces pour essayer de le cacher ou utiliser javascript pour "Cacher" ou obscurcir et créer la structure DOM plus tard. À la fin, le navigateur a besoin du html pour pouvoir afficher une page Web.

En disant cela, vous pouvez voir le DOM créé et voir tout le code html utilisé pour rendre ce que vous voyez sur le navigateur.

Personne ne le cachera complètement, il n'y a que quelques méthodes pour "cacher" ou rendre plus difficile la copie, etc.

Dans le cas des applications Android ou IOS, ils peuvent créer un code HTML personnalisé sur votre appareil à partir du navigateur User-Agent. [ https://en.wikipedia.org/wiki/User_agent]

J'espère que cela aide.


0 commentaires

0
votes

Une autre option idiote qui vous permet de ne pas afficher le code source est de faire une Application à page unique (tous les frameworks Javascript modernes comme Angular, React ou Vue sont créés dans cette portée).

Dans ce cas, le code source sera un fichier index.html presque vide. Le html sera généré dynamiquement grâce à votre code javascript (par l'utilisation du template ou de la syntaxe JSX)

PS: de cette façon, vous pouvez toujours voir le html généré dans la console du navigateur (comme l'onglet Elements dans Chrome)


2 commentaires

c'est intéressant ... je pense que c'est ce sur quoi je dois approfondir ... j'essaierai d'apprendre react js et voir si je peux créer une page avec une source minimale affichée sur la source de vue ...


Bien que les applications SPA rendent plus difficile l'utilisation de la «vue source», il est toujours simple d'afficher le code HTML généré par script à l'aide des outils de développement du navigateur.



1
votes

Ceci est impossible sur la plupart sinon tous les navigateurs modernes. Même si vous désactivez le clic droit ou ctrl + u ou ctrl + shift + i , il est toujours possible d'afficher la source de la page dans Google Chrome ( seul navigateur que je peux vérifier).

Comme d'autres personnes l'ont mentionné, vous pouvez réduire votre code pour l'obscurcir, mais même cela peut être "déchiffré" si vous avez quelqu'un qui a assez de temps libre pour regarder ce code dégoûtant.


0 commentaires

-1
votes

Vous pouvez avoir votre HTML et JS compilés sur votre propre serveur, et diffusés en temps réel à vos utilisateurs au lieu d'être compilés sur leur propre ordinateur. Des services comme HideJS facilitent cette tâche. Malgré ce que les autres disent, cela rend physiquement impossible pour quiconque de voir votre code source.


1 commentaires

Veuillez partager plus de détails à ce sujet. "Malgré ce que les autres disent" n'est pas une source crédible selon laquelle aucun service (qui n'est même pas disponible pour le moment) bloque les outils de développement du navigateur



1
votes

Pour désactiver le clic droit

jQuery(document).ready(function($){
$(document).keydown(function(event) {
var pressedKey = String.fromCharCode(event.keyCode).toLowerCase();

if (event.ctrlKey && (pressedKey == "c" || pressedKey == "u")) {
alert('Sorry, This Functionality Has Been Disabled!');
//disable key press porcessing
return false;
}
});
});

Pour désactiver les options F12

document.onkeypress = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
document.onmousedown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
document.onkeydown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}

Pour désactiver ctrl + c, ctrl + u

document.addEventListener('contextmenu', event => event.preventDefault());


0 commentaires

-2
votes

Ajoutez simplement php

<?php
    for($i = 0; $i <= 500; $i++) {
        echo "

";
    }

    for($i = 0; $i <= 100; $i++) {
        echo "        ";
    }
?>
<html>
<head>...</head>
<body>...</body>
</html>
<?php 
    for($i = 0; $i <= 500; $i++) {
      echo "

";
    }
?>


2 commentaires

Veuillez ajouter une explication à votre réponse afin que d'autres puissent en tirer des leçons


vous pouvez formater votre code en utilisant un bloc de code qui rendra votre réponse bonne et facile à lire