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

Javascript 用户使用查看源代码选项时如何隐藏网站的html源代码,javascript,html,web-development-server,Javascript,Html,Web Development Server,当我尝试访问浏览器上的“查看源代码”选项时,我看到一些网站隐藏了源代码。。。就像下面的页面 view-source:https://www.swiggy.com/bangalore/restaurants 他们是怎么做到的?他们使用什么技术使它看起来像一段javascript,而不是我们用来生成网页的完全正式的HTML代码 同样,当我在手机上看到与他们的android应用程序运行相同的swiggy.com网站时。他们是否使用任何框架来帮助他们实现这个应用程序的感觉,或者他们使用AJAX/HT

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

 view-source:https://www.swiggy.com/bangalore/restaurants
他们是怎么做到的?他们使用什么技术使它看起来像一段javascript,而不是我们用来生成网页的完全正式的HTML代码


同样,当我在手机上看到与他们的android应用程序运行相同的swiggy.com网站时。他们是否使用任何框架来帮助他们实现这个应用程序的感觉,或者他们使用AJAX/HTML只是为了让我们感觉和他们的应用程序一样?

只是想指出,我在这方面是新手,但这可能会有所帮助:

你可以用

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

...


document.onmousedown=禁用单击;
status=“右键单击已禁用”;
功能禁用单击(e)
{
如果(event.button==2)
{
警报(状态);
返回false;
}
}
注意:就像已经有很多评论一样,这是不可能的,但我将保留这段代码,以防它对您的特定情况有所帮助


您将无法隐藏HTML。您可以缩小,使用大量的空间来隐藏它,或者使用javascript来“隐藏”或模糊,并在以后创建DOM结构。最后,浏览器需要html才能呈现网页

通过这样说,您可以看到创建的DOM,并将看到用于呈现浏览器上所见内容的所有html代码

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

对于android或IOS应用程序,它们可以基于浏览器用户代理为您的设备创建自定义html。[


希望它能有所帮助。

另一个让您不显示源代码的愚蠢选项是执行一个单页应用程序(所有现代Javascript框架,如Angular、React或Vue都是在此范围内创建的)

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


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

这在大多数(如果不是所有)现代浏览器上是不可能的。即使您禁用
右键单击
ctrl+u
ctrl+shift+i
也仍然可以在Google Chrome中查看页面源代码(只有浏览器我可以验证)


正如其他人所提到的,你可以缩小你的代码,使之不可见,但即使是这样也可以“解密”如果你有人手头有足够的时间去看那些恶心的代码。

你可以在自己的服务器上编译HTML和JS,并实时传输给用户,而不是在他们自己的计算机上编译。像这样的服务使这变得容易。不管别人怎么说,这在物理上是不可能的e
供任何人查看您的源代码。

要禁用,请右键单击

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;
}
});
});
只需添加php


...
...

他们并没有隐藏任何东西,他们只是用一个缩微器缩小代码。我看到了人类可读的丑陋代码。从什么意义上说,你认为它是“隐藏的”?如果你需要隐藏浏览器的源代码,那么你就做错了……该网站使用的是SPA框架,而不是缩小的html。你可以使用浏览器开发人员工具查看生成的html。不可能阻止用户查看页面源代码;最多可以让它稍微不方便。@DanielBeck-谢谢你的帮助是的,我知道开发工具允许我查看所有内容…但是我想要这种方法,这样人们就不会立即理解源代码是如何生成的…@RyanWilson这是一个链接-我的错!但是编辑成satisfy@Malcolm不用担心,欢迎你,也不要为自己是新来的而感到难过。如果你理解了,最好在答案中添加实际的代码你发布的内容,添加注释来解释代码也很有帮助。我给了你+1分,因为有人决定否决你,即使你是新来的,只是在学习诀窍。我没有否决,但是:禁用上下文菜单不会阻止用户看到源代码(没有办法这么做),它会在过程中禁用有用的功能。谢谢,伙计们!感谢反馈,我再次编辑了它以使其更合适。这很有趣…我认为这是我需要进一步研究的内容…我将尝试学习react js,看看我是否可以在view source上创建一个源代码最少的页面…而SPA应用程序则使其更为复杂lt要使用“查看源代码”,使用浏览器的开发工具查看脚本生成的HTML仍然很简单。请为您的答案添加一些解释,以便其他人可以从中学习您可以使用代码块格式化您的代码,使您的答案很好且易于阅读。请分享更多详细信息。“不管其他人怎么说”不是一个可靠的来源,任何服务(目前甚至不可用)都会阻止浏览器的开发工具
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;
}
});
});