【问题标题】:PHP: Is it possible to save a website, simulating a manual save?PHP:是否可以保存网站,模拟手动保存?
【发布时间】:2019-03-04 22:47:15
【问题描述】:

我了解如何使用 fopen、file_get_contents 等 - 但我很想知道是否有办法在网页上生成“手动保存”?好像我要物理右键单击>“另存为”>到桌面?

我问这个是因为我想了解更多关于保护数据的知识。我认为隐藏源代码是不可能的,但我最近发现可以通过将代码放在 JavaScript 中来完成。因此“隐藏代码”不会出现在查看源代码中,但仍会出现在 Firefox Web Developer Tools 等中。

假设我正在使用 JavaScript 来保护我的源代码(尽可能做到最好)。如果有人要 Ctrl+U(查看源代码)我的网页(或 fopen/file_get_contents),他们会看到:

<div class="StartofSecretSourceCode"></div>

代替:

<div class="StartofSecretSourceCode">
    <div class="Something">Some stuff and things</div>
</div>

为了让用户查看本节中的完整源代码,他们必须检查 Firefox/Firebug/etc 中的代码或手动保存网页。

所以我想知道是否有人可以使用 PHP(或其他东西)自动“手动保存”网页。如果是这样,我很想知道您将如何在 PHP 中做到这一点。我希望我的问题有意义>.

【问题讨论】:

  • 您似乎在这里根据一些错误的假设进行操作。您发送给客户端的任何内容都将对客户端可见。我不确定你所说的“在 JavaScript 中”是什么意思,而这对用户来说是“不可见的”。用户可以看到那里的一切。就您所问的而言,听起来您正在寻找一种称为“无头浏览器”的东西,它是一种代码组件,其行为类似于浏览器(包括执行 JavaScript),但只是没有用户界面。
  • 无论您发送给客户端(即浏览器)的任何内容,无论是纯 HTML、完整的网站、JSON、XML 等,它仍然只是提供给用户。浏览器可能会呈现内容,但它绝不是“隐藏的”或安全的。一旦你将它发送给世界,无论它是什么,它都已公开共享。只有位于服务器上的后端代码是私有的。

标签: php save


【解决方案1】:

您可以使用 guzzle 库或 curl 发送请求并保存响应(以与浏览器相同的方式 - 从字面上您可以模拟浏览器) - 因此您可以发送 GET 请求和下载页面(及其资产,如 js 文件)并保存它从 php 端光盘 - 没问题。

但是,如果您想保护您的代码,请不要将其发送给用户,而是在服务器端执行它并仅将结果返回给用户(在 html 文件中)。这是标准且良好的代码保护方式

【讨论】:

    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多