我正在(慢慢地)学习如何使我的网站更加安全。我正在查看《D&D Beyond》,注意到一些我以前从未见过的东西,我想了解更多。
- 当您查看源代码时,部分源代码不会显示。
这很难解释。我试图在另一篇文章中解释它,但收到了大量尖刻的评论。我告诉你,我知道我看到了什么。我想知道这怎么可能以及如何复制它。
我通常使用 PHP/JQuery 编写,因此我主要想使用这些语言了解更多信息。
示例: 您可以使用角色生成器创建角色,然后查看角色表。角色统计数据的主要部分包含在一个非常大的父 div 中:“.character_sheet”
如果您手动将字符表保存到桌面,您可以看到此部分的 HTML。如果您在 Firefox 中检查此部分,您还可以看到数据。但是,如果您在浏览器中尝试按 CTRL+U,则不会显示此部分中的 HTML。如果您尝试curl/fopen/file_get_contents
,它也不会出现此外,图像通过正常方式是不可见的。 例如:我知道如何禁用网站上的右键单击,但如果有人想要拍摄我的图像,他们所要做的就是打开我的源代码并查看图像网址并从那里保存它。
在 D&D Beyond 网站上,我可以调出 Firefox 的 Web 检查器,查看图像应该在的位置,查看 CSS,然后……什么也没有。没有指向图像的链接,而该链接在该位置。我不知道他们如何在没有 css/html 的情况下显示图像。我很想知道这是如何完成的。
如果有人有任何见解/猜测/等,并且可以为我指明正确的方向以了解更多信息,我将非常感激!
最佳答案
服务器端代码(例如 PHP)始终对访问者隐藏(除非您存在某种安全漏洞)。
访问者始终可以看到 HTML、JavaScript 和 CSS 等客户端代码。即使您无法立即在 DOM 中看到它,它也会隐藏在某个地方。
最有可能的情况是它隐藏在嵌入的 .js
中或.css
文件,其看起来类似于以下内容:
<script src="scripts.js"></script>
<link rel="stylesheet" type="text/css" href="theme.css">
HTML 可以通过 JavaScript 输出到页面,这不会显示在 DOM 中(尽管它会显示为 PHP echo
)。 HTML 也可以通过使用 <iframe>
来“隐藏” 标签和 HTML imports 。
JavaScript 有多种可能被掩盖/畸形的方式,因此很难追踪。您可能会在 DOM/.js
中发现一些奇怪的、“不可读”的代码文件,进而可以输出 HTML 本身。
关于php - 试图弄清楚如何 "hide"图像和源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55389480/