有没有办法隐藏 HTML 源代码并保持其有效?

信息安全 电子邮件 html 客户端 敏感数据暴露
2021-09-05 10:05:19

我有一个网站,其中包含手动创建的客户端 HTML 联系表单(而不是像 PHP 这样的 HTML 构造函数的输出):

<form action="mailto:someone@example.com">
    Email Adress:<br>
    <input type="email" name="email_address" value="" maxlength="100" />
    <br>
    <input type="submit" value="Submit" />
</form>

我想mailto:someone@example.com从包含它的所有 HTML 源代码中隐藏它,这样用户即使直接在源代码中也无法找到电子邮件地址;
这样,通常只有给我发了邮件并得到回复的客户——才会知道邮件地址(除非用户取消了隐藏操作)。

有没有办法隐藏 HTML 源代码并保持其有效?

更新

从冷静地阅读所有答案来看,我的问题似乎有一个错误的假设:我错过了很多时间,mailto最终总是会在用户的电子邮件客户端弹出窗口中显示电子邮件(也可能在此之前在左下角的预览中)浏览器屏幕端口);我认为我错过了这一点,因为建议源代码混淆的回复和我认为多余的句子(例如The question 甚至在概念层面上没有意义)的组合的认知偏差;我试图在编辑中删除它(遗憾的是,它被部分批准了)。我现在明白无论我做什么,无论我如何混淆源代码;我输入的电子邮件mailto 最终将始终出现在应用于浏览器的用户电子邮件客户端中(如果有 - 如果没有,则不会有电子邮件发送效果)。

4个回答

您不能隐藏 HTML 并期望浏览器能够解释它。浏览器需要完全访问 HTML 才能显示站点的所有部分。一旦浏览器可以访问它,用户也可以访问它。

进一步说明,出于完全相同的原因,JavaScript 也无法“隐藏”站点的内容,并且仍然使浏览器以及最终用户可以访问它。

好吧,恕我直言,防止用户知道邮件地址的唯一可靠方法是让邮件发送服务器端而不是客户端。换句话说,客户端只提供自己的邮件地址和文本,通过表单上传到服务器,邮件由服务器应用程序发送,服务器应用程序是唯一知道收件人地址的部分。

这通常用于帮助中心,以防止用户直接使用其内部地址。

你不能。这个问题在概念层面上甚至没有意义。mailto:链接只是一种与最终用户进行交流的便捷方式,他们可以向其发送电子邮件如果您的 mailto 链接有效,最终用户将根据定义知道电子邮件的去向,就像最终用户根据定义知道他们单击的链接将去向一样。

您必须问自己要解决的问题是什么;如果您想隐藏收件人的姓名,您可以通过在邮件服务器上创建模糊甚至临时的电子邮件地址并将邮件从这些地址转发给实际收件人来做到这一点,类似于如何使用 URL 缩短器来隐藏实际链接的目的地,但用户将始终看到他们发送到的电子邮件地址,因为这正是电子邮件的工作方式。

你不能。Javascript 也不能​​。您有三个选项,它们都依赖于后端语言。如果您没有服务器,您有两种选择,一种正确的方式和两种疯狂的方式:

正确的方法:您向服务器提交表单,服务器通过 SMTP 处理此电子邮件。

好的方法:您提交到另一个可以在服务器端处理它的域或 API。

疯狂的方式:您编写一个注册到您自己的自定义 URL 协议的桌面应用程序,并且参数包括表单的正文。您的消费者安装了这个桌面应用程序,它通过 SMTP 静默处理这封电子邮件,而不是打开他们的电子邮件客户端。目标邮件可以在该应用程序中进行硬编码,除非他们反编译或进行内存转储,否则他们无法获得它。而不是“mailto:email.com”,它变成了“custom-mail:”,没有邮件。

这就是“mailto”。这是一个在操作系统中注册的协议。但是,请记住,如果您依赖他们的客户和“mailto”,那么您做什么都没关系。他们会在他们的客户端打开的第二秒看到它,所以你在这里并没有真正解决任何问题。