我该如何查看网站www.samy.pl的源代码?

12

这个网站(www.samy.pl)使用了一些技巧,以便没有人能够检查代码(Ctrl+Shift+I)或者查看源代码(Ctrl+U)。它可以检测到您是否已经打开控制台或检查器,代码会自动更改。

这是如何实现的?


@Adam 不,这个不同于那个网站。 - Barmar
按下 F12 键打开控制台。使用 IE11 欺骗他们的脚本。 - yezzz
如果我在Chrome浏览器中前往“更多工具”>“开发者工具”,或使用(ctrl+shift+i)选项,该网站将重定向到另一个页面,以便没有人可以查看主页的代码。那么怎么办呢? - TPS kisan
该网站不知何故会检测到您打开控制台,从而改变源代码。 - Barmar
显示剩余8条评论
10个回答

4

您可以随时保存网站。 在Chrome中打开菜单-> 更多工具 -> 另存为..

您应该能够在Chrome中运行HTML文件,并使用Dev Tools而不被拦截。


它仍然会被阻止,因为代码是被下载和阻止的东西。但是您可以在文本编辑器中打开它来查看代码。 - Cameron
1
打开文件看代码真的起作用了! - Cameron

3
<现在我明白为什么人们会认为那是错误的答案(如果你进行其他操作,源代码就会被替换)> <1.打开检查器导航到站点,你会看到“没有源代码可供您使用!您找到了彩蛋#7。”> <2.然后检查源代码以找到彩蛋#2: >
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控制台中,您将获得加载页面的标签。

enter image description here

注:要查看渲染后的源代码,只需正常加载页面,然后禁用JavaScript并按F12即可。

玩得开心!


这已经不再有效。 - Michał Miszczyszyn
"<!DOCTYPE html><html> <head> <noscript> <meta http-equiv=&quot;refresh&quot; content=&quot;0;url=/code/?ns=1&quot; /> </noscript> <script> var YOU_FOUND_THE_SOURCE_TO_SAMY_PL = &quot;你太棒了!&quot; var total_easter_eggs = 21 /* 感谢您的参与! 当前网站上有21个复活节彩蛋, 希望您已经享受到了其中的一些,也许 您可以找到更多的彩蛋!
您的网络朋友,-samy */ </script> ..."
- pabbasian

3

这篇答案提到了一个称为“清除”API的console,它与此答案有关。

以下是我认为正在发生的事情:

首先,我认为Google Chrome DevTools在打开/启动时会发出事件。页面作者使用以下处理程序逻辑监听此“launch”事件:

  1. 运行一个chrome.devtools.inspectedWindow.evalDevTools检查API
  2. document.body.innerHTML设置为winky-face div
  3. 还有一个setInterval,在“no source for you”的console.log()之前执行console.clear()

我还在阅读“no source for you”页面时检查了Chrome DevTools的EventListeners选项卡。

不幸的是,您可以查看的两个事件侦听器似乎没有做任何有用的事情

  • 一个返回false
  • 另一个将表单和相关的提交操作连接在一起。

希望这有所帮助。


1
所以他们还清除他们的脚本标签,并且删除任何干扰控制台的事件监听器和/或回调。 - yezzz

1
在某处创建一个名为index.html的文件,其中包含一个<iframe src='https://samy.pl/'>标签。在浏览器中加载它,然后打开开发者工具。你将看到iframe内部的源代码。

这个并没有真正回答问题,对吧?它只是展示了如何查看网站源代码,但并没有回答如何重新创建它的问题。 - Lucas Reppe Welander

0

更新: 访问view-source:http://samy.pl,这是右键查看源代码的链接。我认为它只适用于Chrome。

如果您使用的是Chrome,请转到右上角的菜单。然后转到更多工具,单击开发人员工具。


0

经过许多尝试和推测,我的室友最终以相当天真的方法成功了。

只需打开Chrome开发工具并在源代码被替换之前复制出来即可。将Chrome进程设为低优先级,并使用CPU进行一些重型操作(如编译或其他操作)有所帮助。

快点行动。


0
啊!我找到了一种非常简单的方法。
1. 打开Firefox(Chrome只会显示部分内容)。
2. 在URL栏中输入javascript:alert(document.documentElement.outerHTML);
3. 按下Enter键。
4. 哇!

0

新的源代码查找方式!但是有点复杂!
打开一个新标签页。
打开 Devtools(检查面板)
单击切换设备工具栏(类似移动设备图标)

单击“无限制”以减慢页面加载时间

选择“低级移动设备”

打开页面! 当您看到页面上出现图标时,您现在可以查看源代码了! :)


0

非常抱歉晚了,但我想我有答案

他使用了这个节点包, 他也对其进行了贡献分叉

该包的文档说明如果开发工具未停靠,则无法正常工作


-2
您可以在几乎所有的浏览器中简单地使用开发者工具。只需按 F12 键,就会出现开发者工具部分。
谢谢

这也可能被网站上的代码阻止,因为如果右键被阻止,那些键盘命令也被阻止,那么F12也很可能被阻止。 - Cameron
F12确实可以使用,它会打开开发者工具,但是网站会检测到这一点并加载其他内容。网站对浏览器的控制有限。你认为他们为什么要限制js xss? - yezzz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接