当我尝试访问浏览器上的“查看源代码”选项时,我看到一些网站隐藏了源代码……就像下一页一样……
view-source:https://www.swiggy.com/bangalore/restaurants
他们是如何做到的?他们使用了什么技术,因此看起来像一段JavaScript而不是我们用来生成网页的完全正式的HTML代码?
另外,当我在手机中看到相同的swiggy.com网站时,其操作方式与它们的android应用相同。他们使用任何框架来帮助他们获得此应用程序的感觉,还是仅使用AJAX / HTML来使我们与他们的应用程序一样?
答案 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 click
或ctrl + u
或ctrl + 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和其他东西中隐藏源代码,我想我发现了一个您喜欢的线程。
答案 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 "";
}
?>