将电子邮件添加到URL作为参数 - 安全问题? Javascript解决方案?

时间:2018-02-26 15:56:32

标签: javascript forms email

我有以下问题,需要第二意见。

用户通过数字服务表单(多个输入字段)注册。以后只能填写一个字段,但需要在几天内填写(fieldName:apple)。

我想让用户尽可能轻松地提交此信息。因此,他在几天后收到一封提醒电子邮件,其中包含指向“getApple”表单的链接,他可以在其中输入“apple”的值。

我需要使用userID识别此用户,在这种情况下是电子邮件地址。有没有办法将用户电子邮件地址作为参数添加到URL中以预填我的表单“getApple”?

2 个答案:

答案 0 :(得分:1)

是的,只需使用其中一个查询参数创建链接,例如?email=myemail@example.com 确保至少网址对电子邮件进行编码,这样就不会什么都不打破。

然后javascript可以使用URLSearchParams来拉出值,反序列化它,并将其放入表单字段(如果您不希望它们更改它,则隐藏,如果它们更改它就可见)。当他们提交时,中提琴!电子邮件也是如此。

从安全角度考虑的事情!确保您清理通过URL传递的值,这是XSS攻击的一种途径,因此请确保您在此方面保护自己。和往常一样,重新确定服务器上的所有值,以避免SQL注入和黑客可能尝试的所有其他恶意。虽然您可以使用此方法传递电子邮件地址或其他无害信息,但不要使用此方法传递登录凭据或其他身份验证信息。

如果你真的很妄想保持你的用户活动的秘密和安全免受任何间谍活动(因为他们的电子邮件可以被任何人看到网址,即听众,意外网址转发等),你可以加密他们的电子邮件如上所述,保存在服务器上的秘密通过URL,然后表单将发送加密的电子邮件,服务器将使用其秘密进行解密。对于大多数应用程序来说,这可能是不必要的。

答案 1 :(得分:-1)

您可以尝试对电子邮件地址进行编码并将其发送到链接中。然后在服务器上解码相同的方法。

PS。例如,尝试使用md5。