Php 隐藏通过POST请求发送的参数

Php 隐藏通过POST请求发送的参数,php,laravel,registration,mailgun,one-time-password,Php,Laravel,Registration,Mailgun,One Time Password,我正在进行注册,其中用户输入电子邮件作为他们的用户名,我必须在成功注册后向他们的电子邮件发送随机代码 到目前为止,我得到的是: 第1步:用户使用其电子邮件注册。 步骤2:API生成一个随机代码并将其插入我的数据库表(tbl\U temp\U otp) 步骤3:插入数据库后,代码将发送到注册中提供的电子邮件。 第4步:用户获取代码,并将其输入注册表,然后API检查该代码是否存在,是否仍在未使用的 陈述。 到目前为止,它是有效的 我的问题是,我如何通过POST请求发送OTP代码,而不让任何人在g

我正在进行注册,其中用户输入电子邮件作为他们的用户名,我必须在成功注册后向他们的电子邮件发送随机代码

到目前为止,我得到的是:

  • 第1步:用户使用其电子邮件注册。
  • 步骤2:API生成一个随机代码并将其插入我的数据库表
    (tbl\U temp\U otp)

  • 步骤3:插入数据库后,代码将发送到注册中提供的电子邮件。
  • 第4步:用户获取代码,并将其输入注册表,然后API检查该代码是否存在,是否仍在
    未使用的
    
    陈述。
到目前为止,它是有效的

我的问题是,我如何通过POST请求发送OTP代码,而不让任何人在google chrome的
网络
选项卡中看到它

根据评论进行编辑

我想我对这个问题的解释是错误的。。。

我真正的意思不是
没有人看到它
,而是
没有注册人看到它

由于注册人能够看到数据库中插入的代码,我担心他们会使用一个不存在的电子邮件地址注册,并通过查看
网络
选项卡并输入插入的OTP代码进行验证,但仍然能够使用提供的不存在的电子邮件地址完全注册。

您不能

您通过电子邮件发送,电子邮件客户端需要阅读,然后需要将其传输到用户的浏览器,以便浏览器可以通过网络将其发送回

用户的浏览器和电子邮件客户端属于用户。它们由用户控制。它们不能用于向用户隐藏信息


但这不重要。这是一个一次性代码,旨在证明用户就是他们声称的用户。用户是否得到它并不重要


浏览器和服务器之间可能存在截获的风险,但您可以通过使用HTTPS来缓解这一风险

有可能在电子邮件客户端和浏览器之间被截获,但对于用户系统中存在恶意软件的可能性,您无法采取任何措施,该恶意软件旨在共享您的一次性密码。不过,从一开始,这种可能性很小

电子邮件有被截获的风险,但对此你无能为力,除非你想强迫用户投资设置和学习如何使用GPG或类似软件。(同样,这是一个小风险)


重新编辑:

我担心他们会使用不存在的电子邮件地址注册,并通过查看“网络”选项卡进行验证

您的一次性代码应该与它通过电子邮件发送到的电子邮件地址相关联

在用户单击该电子邮件中的链接之前,它不会显示在“网络”选项卡中。因此,如果没有真实的电子邮件地址,他们无法获得代码


您已经将代码与数据库中的特定电子邮件地址关联,因此他们无法改变主意,将该代码与其他电子邮件地址一起使用。

无法隐藏通过POST请求发送的OTP。最好的做法是使OTP基于时间,并限制其有效的持续时间。
无论如何,在网络选项卡中可见的请求只对相应的用户可见,因此没有实际的安全风险。希望这能澄清你的问题。您可以继续相同的过程。

“我如何通过POST请求发送OTP代码,而没有人在google chrome的“网络”选项卡中看到它?”——您不能。你为什么认为这是必要的?
没有人看到它
…假设你使用HTTPS,唯一能看到它的人是用户,这是他们的令牌,所以这并不重要。我同意到目前为止所有其他的评论和回答,这完全不是问题。此外,如果它确实是一次性密码,那么当它在邮件中发送时,假设您的服务器成功接收并处理它,那么它将被视为已使用,不能再次使用。所以,即使有人在那一刻截获了它,这也不重要。包含它的电子邮件有一点误入歧途的可能,但同样,风险很小。重新编辑:作为一个问题,这比以前更有意义。你说“注册人看不到”。但这是不可能的,部分原因是他们总是可以访问“网络”选项卡,但主要是因为他们首先在表单中键入了它!您自己说过,
用户获取代码,并将其输入注册表中
。所以他们已经知道密码了!如果你对他们隐瞒,整个过程就不可能实现。我认为你没有考虑到你所说的逻辑。此外,在你的数据库中,OTP代码应该与特定的注册尝试相关联,因此应该与特定的电子邮件地址(代码发送到的地址)相关联。因此,任何人都不可能将其注册到其他电子邮件地址。提交时应仅激活其最初关联的电子邮件地址。如果可以使用它来激活不同的电子邮件地址,那么您的服务器端逻辑存在严重缺陷。这与表单的POST数据的内容无关。而且,正如我前面所说的,如果用户在表单中提交代码,并且服务器接受它,那么既然您说它是一次性密码,那么就不可能再次使用该代码来激活同一封电子邮件或另一封电子邮件。同样,如果有可能做到这一点,您的服务器端逻辑中还有另一个严重缺陷。同样,这与表单POST数据的内容无关。
您可以通过使用HTTP来缓解这种情况。
…假设您是指HTTPS?:-)哎呀,打字错误。修好了,见鬼