用户使用查看源选项时如何隐藏网站的html源代码

时间:2019-03-05 17:06:14

标签: javascript html web-development-server

当我尝试访问浏览器上的“查看源代码”选项时,我看到一些网站隐藏了源代码……就像下一页一样……

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

他们是如何做到的?他们使用了什么技术,因此看起来像一段JavaScript而不是我们用来生成网页的完全正式的HTML代码?

另外,当我在手机中看到相同的swiggy.com网站时,其操作方式与它们的android应用相同。他们使用任何框架来帮助他们获得此应用程序的感觉,还是仅使用AJAX / HTML来使我们与他们的应用程序一样?

8 个答案:

答案 0 :(得分:1)

您将无法隐藏HTML。您可以缩小代码,做很多空格以尝试将其隐藏,或使用javascript“隐藏”或混淆并稍后创建DOM结构。最后,浏览器需要html才能呈现网页。

这样说,您可以看到创建的DOM,并且将看到所有用于呈现在浏览器中看到的html代码。

没有人会完全隐藏它,只是一些“隐藏”或使其难以复制等方法。

对于android或IOS应用程序,他们可以基于浏览器User-Agent为您的设备创建自定义html。 [https://en.wikipedia.org/wiki/User_agent]

希望有帮助。

答案 1 :(得分:1)

另一个愚蠢的选项,它不允许您显示源代码,方法是执行单页应用程序(所有现代Javascript框架(如Angular,React或Vue都在此范围内制作))。

在这种情况下,源代码将是一个几乎为空的index.html文件。 html将通过您的javascript代码动态生成(使用模板或JSX语法)

PS:通过这种方式,您仍然可以在浏览器的控制台中看到生成的html(例如Chrome中的“元素”标签)

答案 2 :(得分:1)

在大多数(如果不是全部)现代浏览器上,这是不可能的。即使您禁用了right clickctrl + uctrl + shift + i,仍然可以在Google Chrome浏览器中查看页面源代码(只有我可以验证的浏览器)。

正如其他人提到的那样,您可以缩小代码的长度以使其变得晦涩,但是如果您有足够的时间来查看令人讨厌的代码,甚至可以将其“解密”。

答案 3 :(得分:1)

要禁用右键单击

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

要禁用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;
}
}

要禁用ctrl + c,ctrl + u

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;
}
});
});

答案 4 :(得分:0)

只是想指出我对此并不陌生,但这也许会有所帮助:

您可以使用

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

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

注意:就像许多评论一样,这是不可能的,但是我会保留这段代码,以防万一它对您的情况有所帮助。

how to hide my source code so to not be copied

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

答案 5 :(得分:0)

您可以在自己的服务器上编译HTML和JS,并实时将其流式传输给用户,而不是在自己的计算机上进行编译。像HideJS这样的服务使此操作变得容易。尽管有其他人在说什么,但这使得所有人都完全不可能看到您的源代码。

答案 6 :(得分:-2)

如果您想从ctrl + u和其他东西中隐藏源代码,我想我发现了一个您喜欢的线程。

How to disable Ctrl+U using Javascript

答案 7 :(得分:-2)

只需添加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 "";
    }
?>