Javascript 如何检查来自用户收件箱的网页请求

Javascript 如何检查来自用户收件箱的网页请求,javascript,php,email,Javascript,Php,Email,我有一个简单的问题。如果有人能回答我,我非常感激。我有一个web应用程序,它向订阅者发送下载链接。订阅者可以单击收件箱中的链接并获得下载pdf文档的权限。这是好的,但我想要的是,只允许访问pdf文档时,链接是从他的收件箱点击只。我的意思是,如果订阅者将此电子邮件转发给其他人,或者试图手动将链接粘贴到浏览器中,则该链接不起作用。提前谢谢。你想要的是不可能的 考虑一下这种情况:你发电子邮件someone@example.com. 他们可以通过以下方式查看电子邮件: a) 桌面邮件客户端 b) 智能手

我有一个简单的问题。如果有人能回答我,我非常感激。我有一个web应用程序,它向订阅者发送下载链接。订阅者可以单击收件箱中的链接并获得下载pdf文档的权限。这是好的,但我想要的是,只允许访问pdf文档时,链接是从他的收件箱点击只。我的意思是,如果订阅者将此电子邮件转发给其他人,或者试图手动将链接粘贴到浏览器中,则该链接不起作用。提前谢谢。

你想要的是不可能的

考虑一下这种情况:你发电子邮件someone@example.com. 他们可以通过以下方式查看电子邮件:

a) 桌面邮件客户端
b) 智能手机/平板电脑邮件客户端
c) 网络邮件

这三个选项对您的服务器来说都是“不同”的,具体取决于它们在您的链接上单击的客户机。如果用户将电子邮件转发给其他人,请说
otherperson@example.com
,此人的邮件文件中也会有完全相同的链接,他们可以通过完全相同的选项查看该链接

如果他们使用了webmail,并且webmail系统愚蠢到有
webmail.example.com/readmail?userid=someone


但除此之外,不,你不能假设任何关于传入的点击的事情,只是有人在某封电子邮件中点击了链接。

你想要的是不可能的

考虑一下这种情况:你发电子邮件someone@example.com. 他们可以通过以下方式查看电子邮件:

a) 桌面邮件客户端
b) 智能手机/平板电脑邮件客户端
c) 网络邮件

这三个选项对您的服务器来说都是“不同”的,具体取决于它们在您的链接上单击的客户机。如果用户将电子邮件转发给其他人,请说
otherperson@example.com
,此人的邮件文件中也会有完全相同的链接,他们可以通过完全相同的选项查看该链接

如果他们使用了webmail,并且webmail系统愚蠢到有
webmail.example.com/readmail?userid=someone


但除此之外,不,您不能假设任何关于传入的单击的信息,只是有人单击了某封电子邮件中的链接。

无法判断链接是从电子邮件客户端打开的还是粘贴到了地址栏中。无法跟踪电子邮件是否已转发(HTML格式电子邮件中的webbug图像被大多数电子邮件客户端阻止)

如果你想限制谁可以从你的服务器下载文件,那么要求用户登录,然后希望他们没有参与密码共享


即使这样也无法阻止他们直接重新分发文件。

无法判断链接是从电子邮件客户端打开的还是粘贴到地址栏中的。无法跟踪电子邮件是否已转发(HTML格式电子邮件中的webbug图像被大多数电子邮件客户端阻止)

如果你想限制谁可以从你的服务器下载文件,那么要求用户登录,然后希望他们没有参与密码共享


即使这样,也不能阻止他们直接重新分发文件。

实际上不可能“保护”链接

但如果您的web应用程序要求用户登录,您可以为每个用户生成一个唯一的链接,并要求用户在允许下载之前登录


与一个简单的url相比,人们更不愿意共享他们的登录名/密码。

实际上不可能“保护”链接

但如果您的web应用程序要求用户登录,您可以为每个用户生成一个唯一的链接,并要求用户在允许下载之前登录


与简单的url相比,人们更不愿意共享他们的登录名/密码。

在url上放置一个令牌或与他们的帐户匹配的唯一内容您可以使用a-参见此关于
nonce
=>在url上放置一个令牌或与他们的帐户匹配的唯一内容您可以使用a-参见此关于
nonce
=>所有三个对您的服务器来说是“不同的”——它们很可能都是相同的(彼此和链接转发给的任何人都是一样的)。而且webmail系统已经够蠢了——而且不使用SSL(因为浏览器会阻止来自它的传出引用)有人在某封电子邮件中点击了链接——你甚至都说不出来。如果请求中没有referer头,您所能知道的一切。@Fred ii-:这有什么好处?我收到了电子邮件,我把它转发给别人,但从来没有点击过,那个人点击了,他们就进去了。真的,真的。但是,这会教给一开始转发邮件的人,之后他/她自己就不能转发邮件了;为此向他/她自己的脚开枪对于您的服务器来说,这三种方式都是“不同的”——它们很可能都是相同的(彼此之间以及链接所指向的任何人都是相同的)。而且webmail系统已经够蠢了——而且不使用SSL(因为浏览器会阻止来自它的传出引用)有人在某封电子邮件中点击了链接——你甚至都说不出来。如果请求中没有referer头,您所能知道的一切。@Fred ii-:这有什么好处?我收到了电子邮件,我把它转发给别人,但从来没有点击过,那个人点击了,他们就进去了。真的,真的。但是,这会教给一开始转发邮件的人,之后他/她自己就不能转发邮件了;为此向他/她自己的脚开枪谢谢你的回复,昆汀!事实上,我在想,可能是我错了,请纠正我,如果是这样,在电子邮件发送到订阅者的收件箱时,是否无法获取与特定电子邮件地址或收件箱等相关的任何类型的信息?如果可能的话