这个网站(www.samy.pl)使用了一些技巧,以便没有人能够检查代码(Ctrl+Shift+I)或者查看源代码(Ctrl+U)。它可以检测到您是否已经打开控制台或检查器,代码会自动更改。
这是如何实现的?
这个网站(www.samy.pl)使用了一些技巧,以便没有人能够检查代码(Ctrl+Shift+I)或者查看源代码(Ctrl+U)。它可以检测到您是否已经打开控制台或检查器,代码会自动更改。
这是如何实现的?
您可以随时保存网站。 在Chrome中打开菜单-> 更多工具 -> 另存为..
您应该能够在Chrome中运行HTML文件,并使用Dev Tools而不被拦截。
view-source:https://samy.pl
你将看到:
/*
No source for you! Easter egg #2
*// AFTER SOME LONG WHITE SPACES HERE /.source.replace(/.{7}/g,function(w){document.write(String.fromCharCode(parseInt(w.replace(/ /g,'0').replace(/ /g,'1'),2)))});
他通过注入js的方式加载网站,将两种类型的空格替换为1和0,然后通过某些正则表达式将其解析为字符代码,最后转换为字符串:D
https://de.wikipedia.org/wiki/Whitespace_(Programmiersprache)
如果您将该部分粘贴到js控制台中,您将获得加载页面的标签。注:要查看渲染后的源代码,只需正常加载页面,然后禁用JavaScript并按F12即可。
玩得开心!
这篇答案提到了一个称为“清除”API的console
,它与此答案有关。
以下是我认为正在发生的事情:
首先,我认为Google Chrome DevTools在打开/启动时会发出事件。页面作者使用以下处理程序逻辑监听此“launch”事件:
chrome.devtools.inspectedWindow.eval
DevTools检查APIdocument.body.innerHTML
设置为winky-face divsetInterval
,在“no source for you”的console.log()
之前执行console.clear()
。我还在阅读“no source for you”页面时检查了Chrome DevTools的EventListeners选项卡。
不幸的是,您可以查看的两个事件侦听器似乎没有做任何有用的事情:
false
希望这有所帮助。
index.html
的文件,其中包含一个<iframe src='https://samy.pl/'>
标签。在浏览器中加载它,然后打开开发者工具。你将看到iframe内部的源代码。更新: 访问view-source:http://samy.pl,这是右键查看源代码的链接。我认为它只适用于Chrome。
如果您使用的是Chrome,请转到右上角的菜单。然后转到更多工具,单击开发人员工具。
经过许多尝试和推测,我的室友最终以相当天真的方法成功了。
只需打开Chrome开发工具并在源代码被替换之前复制出来即可。将Chrome进程设为低优先级,并使用CPU进行一些重型操作(如编译或其他操作)有所帮助。
快点行动。
javascript:alert(document.documentElement.outerHTML);