通过mailto进行Javascript注入:
假设我的HTML中有一个表单字段,它的通过mailto进行Javascript注入:,javascript,forms,code-injection,Javascript,Forms,Code Injection,假设我的HTML中有一个表单字段,它的name属性是message。在这个表单中,用户将(应该)输入电子邮件的正文。然后,将使用Javascript从浏览器发送此电子邮件。我实现这一点的方法是在mailto:字符串上使用window.open() function validateAndSend(form) { var body = form.message.value; window.open("mailto:email@example.com?body=" + body);
name
属性是message
。在这个表单中,用户将(应该)输入电子邮件的正文。然后,将使用Javascript从浏览器发送此电子邮件。我实现这一点的方法是在mailto:
字符串上使用window.open()
function validateAndSend(form) {
var body = form.message.value;
window.open("mailto:email@example.com?body=" + body);
}
这种方法对我有效,但我担心它的安全性。我听说过SQL注入,我想知道这是否也适用于我的情况。
恶意用户是否可能在表单字段中输入会造成伤害的内容,例如
- 盗窃任何类型的信息
- 执行自己的Javascript代码
- 我在发送电子邮件之前添加了检查,以查看文本字段是否正确 至少包含一个字符,以避免大量垃圾邮件 电子邮件
- 在几个测试用例中,我向输入文本添加了各种
标记,试图通过输入运行我自己的代码。这些恶意脚本只会出现在电子邮件正文中,不会影响任何内容。
通过使用
mailto:
,mailto:
会容易受到Javascript注入的攻击吗?该mailto:
会简单地加载操作系统/浏览器定义的该协议的默认处理程序,并指定其主体。这和他们直接给你们发一封包含内容的电子邮件没什么两样
由于您谈到恶意脚本仍然出现在您试图清理的电子邮件正文中,我认为您更关心的是有人直接向您发送这些脚本,并且深入到您当前的问题中,以至于您忘记了任何人都可以随时向您发送相同的电子邮件…:-) 从您的示例中,用户通过修改源所能做的唯一一件事就是更改浏览器将启动的默认邮件应用程序中的填充值。除此之外,我看不出web表单中的验证有什么作用,因为验证不会出现在他们的邮件应用程序中。