我正在(慢慢地)学习如何使我的网站更安全。我正在检查D&D Beyond,发现了一些我以前从未见过的东西,我想了解更多。
很难解释。我试图在另一篇文章中对此进行解释,但我得到了很多刻薄的言论。我告诉你,我知道我所看到的。我想知道这是怎么可能的以及如何复制它。
我通常使用PHP / JQuery编写,因此我主要想学习使用这些语言的更多信息。
示例: 您可以使用其角色生成器创建角色,然后查看角色表。角色统计信息的主要部分包含在一个很大的父div中:“。character_sheet”
如果您将字符表手动保存到桌面,则可以看到此部分的HTML。如果您在Firefox中查看此部分,则还可以查看数据。但是,如果在浏览器中尝试按CTRL + U,则不会显示此部分中的HTML。如果您尝试curl / fopen / file_get_contents
,它也不会出现。此外,正常情况下看不到图像。 例如:我知道如何禁用在网站上的右键单击,但是如果有人想获取我的图像,他们所要做的就是打开我的源代码,查看图像url并从那里保存。
在D&D Beyond网站上,我可以调出Firefox的Web检查器(应在其中放置图像),查看CSS,等等。没有链接到图像,应该在其中。我不知道他们如何使图像在没有CSS / HTML的情况下出现。我很想知道这是怎么做到的。
如果任何人有任何见解/猜测/等,并且可以指出正确的方向来学习更多信息,我将非常感谢!
答案 0 :(得分:1)
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
中显示)。还可以通过使用 <iframe>
标签和 HTML imports 来“隐藏” HTML。
JavaScript有多种方法可以掩盖/格式错误,因此很难进行追踪。您可能会在DOM / .js
文件中看到一些奇怪的“不可读”代码,而这些代码又可能会输出HTML本身。
答案 1 :(得分:0)
请考虑以下几点,
所有客户端资源都是可见的,尽管您可以通过javascript使其易于阅读,并且最好在服务器端执行大多数代码。
您需要了解如果您的应用程序是公共网站,搜索引擎会喜欢什么,并会被这些搜索引擎索引,因为某些搜索引擎不会将其抓取到仅包含JavaScript代码的网页。
您可以使用CSS background-image Property创建没有<img>
标签的图像。
有一些有用的库,可以使您的代码更易读,例如Closure Compiler Service&JSFuck&JS Packers,尽管最好自己动手并像这些技术一样添加据您所知,请注意,这会使您的代码更大。
,并且根本没有白页源,它应该至少包含<script>
,并且如果您看到的是真实白页,则可能会从服务器端禁用它以使其在窗口顶部可见,并且如果嵌入到iframe中或通过向其发送特定的标头或其他内容,则可能有效。
您可以让服务器端和客户端进行协作:)以获得出色的结果并更加安全。